Office 自动化---准备
来源:互联网 发布:8口网络交换机怎么连接 编辑:程序博客网 时间:2024/06/05 17:13
Office 自动化---准备
引言
笔者在使用C++编写Word和Excel导出报告的时候,由于网上相应的资料很少,所以走了许多弯路。在自己探索尝试了之后,积累一些开发的经验,写成这个系列的博文。
这里我们大部分都是Ole形式的开发,之后会介绍一些第三方库,比如libxl。
一、在VS中引入Office库
这个我还是用截图来说明,相信这样更加直观一点。
1
.
2
.
3
.
这里稍作说明:我们选从文件中导入,一般去Office的安装目录下找
D:\\ProgramFiles\Microsoft Office(笔者将office安装了D盘,可能大多数人选择的是C盘)
这个目录下会几个不同版本的文件夹
比如office11、office12、office14等,其中office11是office2003;office12是office2007;而office14便是office2010。
在进入这些目录,我们主要是开发word和excel。所以如果你要开发word就导入MSWORD.OLB;如果要开发Excel就导入EXCEL.EXE。
然后我们这里导入的几个类似:
_Application、_Document、Documents和Selection
在导入这些类之后后,会新加入一些头文件,在这些头文件中进行一下修改
#import "D:\\ProgramFiles\\Microsoft Office\\Office14\\MSWORD.OLB" no_namespace替换成
#import "D:\\ProgramFiles\\Microsoft Office\\Office14\\MSWORD.OLB" no_namespaceraw_interfaces_only \ rename("FindText","_FindText") \ rename("Rectangle","_Rectangle") \ rename("ExitWindows","_ExitWindows") \ rename("FontNames","_FontNames")
二、简单的例子
try { ////////////////////////////////////////////////////////////////////////// //初始化Word COleVariant vTrue((short)TRUE); COleVariant vFalse((short)FALSE); COleVariant vOpt((long)DISP_E_PARAMNOTFOUND, VT_ERROR); CApplicationWd10 app; if(!app.CreateDispatch(_T("Word.Application"))) //启动Word { return; } app.put_Visible(false); app.m_bAutoRelease = TRUE; CDocumentsWd10 docs =app.get_Documents(); CDocumentWd10 doc =docs.Add((COleVariant)L"",vOpt,vOpt,vOpt); CSelectionWd10 sel =app.get_Selection(); ////////////////////////////////////////////////////////////////////////// //写内容 sel.TypeText(L"HelloWorld!!!!!"); ////////////////////////////////////////////////////////////////////////// //保存 doc.SaveAs(COleVariant(L"D:\\hello_world.docx"),vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt); ////////////////////////////////////////////////////////////////////////// //释放 sel.ReleaseDispatch(); //释放selection对象 doc.Close(vFalse,vOpt,vOpt); doc.ReleaseDispatch(); docs.ReleaseDispatch(); app.Quit(vOpt,vOpt,vOpt); app.ReleaseDispatch(); // MessageBox(L"导出成功"); } catch(COleDispatchException*e) { } catch(CException* e) { }
//说明:这里出现的一些函数和类的介绍会放在后面的篇章中。
三、总结
在用C++开发Office报告导出功能的时候,网上有的也都是VB这些,偶尔还会有C#的,就唯独C++的资料特别少。
在一开始学习的时候,还真的只能慢慢摸索,在Word或者Excel中录制宏,然后开这些Vb代码,转换到C++。这其中走过不少弯路,但最后还是慢慢的掌握了这些开发技术。
所以这里专门做一个系列,帮助正在苦恼者;也自己做一个总结。
- Office 自动化---准备
- Office自动化
- Office自动化编程(1)
- VBA-office的自动化
- Office自动化一些小技巧
- VC之Office自动化开发
- VC Office 自动化(Word、Excel)
- VC++之Office自动化开发
- VC++之Office自动化开发
- VC之office自动化开发
- 全自动化准备XML文档
- 自动化测试之准备篇
- 自动化测试之测试数据准备
- Office 2013 SP1准备发布啦
- 获取MS Office自动化编程的文档
- 使用 Visual C++ 使 Office 自动化
- VC之Office自动化开发(一)
- VC之Office自动化开发(二)
- Storm数据流模型的分析及讨论
- POJ1915-Knight Moves的启发式搜索(A*)算法
- 在线生成android应用程序初探(以在线生成EPUB电子书为例)
- 网络抓包工具。
- js编程题目
- Office 自动化---准备
- UVA11992----线段树的成段更新
- 为Python安装MySQLdb库
- iBATIS一对多/多对多N+1问题解决方案
- GlassFish下手动部署JSF程序
- rails环境下安装extjs4
- Dll的远程线程注入之关键代码描述总结
- 《C++ Primer》习题12.38——12.40
- 设计模式之-迭代器模式