用VC++通过Automation操作Excel表

来源:互联网 发布:mr.ace homme 知乎 编辑:程序博客网 时间:2024/04/30 18:29
1. Office Automation Using Visual C++
 
微软KB中的一篇总括性的文章,对VC++中使用Automation的几种方法及一些相关问题进行了说明,其中也链接了一些实际操作的代码,如数据的批量导入导出等,都是针对使用MFC的方法,而下面这篇对于了解一些背后的原理会有所帮助:
 
How To Automate Excel From C++ Without Using MFC or #import
 
2. 相关的VBA文档,比如对象、方法及常量等的定义,可以查看Office安装目录下的“OFFICE11/2052/VBAXL10.CHM”,如果找不到,运行Office的安装程序,选择应用程序的高级自定义,将Office共享功能中的Visual Basic for Applications及其帮助都选上就有了。
 
3. 生成Excel表时,如果要设置单元格的样式为文本,可以调用Range对象的SetNumberFormatLocal方法,参数是COleVariant("@"),这个地方折腾了我不少时间,起先总以为是设置Style什么的,好一会也没弄明白,后来是利用Excel的宏功能,将设置单元格样式的操作记录成VBA程序,才得到如上的方法,其它类似问题应该也可以类似处理。
 
4. 关于Excel表中有数据的单元格范围,可以对一个已打开的Range对象调用GetCurrentRegion方法来得到。
 
5. 用完后(包括碰到异常)别忘记调用_Application的Quit方法,不然进程列表中要有一堆EXCEL.EXE了:)
原创粉丝点击