office 文档解析

本文主要介绍了在VC环境下解析doc、docx、xls、xlsx、pptx等Office文档的方法,包括ADO、tractText.dll库、文档结构解析等方式,并探讨了各种方法的优缺点和适用场景。对于docx和pptx,通过解析文档结构获取数据,而对于excel,除了ADO方法,还提到了ODBC、BasicExcel和libxl.dll库的使用。
摘要由CSDN通过智能技术生成

最近在项目维护过程中涉及到了office各种文档的解析,捣鼓了好长时间,有点点收货,记下来。

涉及文档:doc、docx、xls、xlsx、pptx。

语言:VC

 

下面对不同的文档进行简单解析:

一、word文档

1、首先想到的方法就是ado,网上一找一大片,下面给几个连接:http://www.docin.com/p-355819700.html ,,,http://huguangchaoren.blog.163.com/blog/static/888341502010922924154/ ,,,,http://blog.csdn.net/dancewyr/article/details/7674558,操作很简单,如果自己安装了office,在vs中找到项目下的类向导,添加“类型库中的mfc类”,在office目录下找到msword.olb,导入。下面简单写下自己的测试代码:

#include "CApplication.h"
#include "CDocuments.h"
#include "CDocument0.h"
#include "CRange.h"

void CdocxtestDlg::OnBnClickedButton1()
{
 // TODO: 在此添加控件通知处理程序代码
 CString strFileName;
 WCHAR chPath[MAX_PATH] = {0};
 GetModuleFileName(NULL, chPath, MAX_PATH);
 WCHAR * ptrPath = wcsstr(chPath,L"demo.exe");
 *ptrPath = '\0';
 strFileName.Format(L"%s\\111.doc",chPath);
 CApplication app;
 app.CreateDispatch(L"Word.Application");
 OutputDebugStringA("CreateDispatch ok");
 app.put_Visible(false);
 OutputDebugStringA("put_Visible ok");
 app.put_DisplayAlerts(false);
 OutputDebugStringA("put_DisplayAlerts ok");
 CDocuments docs = app.get_Documents();
 COleVariant vTrue((short)TRUE),vFalse((short)FALSE),vOpt((long)DISP_E_PARAMNOTFOUND,VT_ERROR);
 CDocument0 doc = docs.Open(COleVariant(strFileName),vFalse,vTrue,vFalse,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt);
 OutputDebugStringA("Open ok");
 CRange range = doc.Range(vOpt,vOpt);
 CString strs = range.get_Text();
 OutputDebugStringW(strs);
 range.ReleaseDispatch();
 doc.ReleaseDispatch();
 docs.ReleaseDispatch();
 VARIANT SaveChanges,OriginalFormat

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值