[整理] 用VC++通过Automation操作Excel表

0. 本文针对VC++ 6.0和Excel 2003的组合,其它版本应该类似。
微软KB中的一篇总括性的文章,对VC++中使用Automation的几种方法及一些相关问题进行了说明,其中也链接了一些实际操作的代码,如数据的批量导入导出等,都是针对使用MFC的方法,而下面这篇对于了解一些背后的原理会有所帮助:
2. 相关的VBA文档,比如对象、方法及常量等的定义,可以查看Office安装目录下的“OFFICE112052VBAXL10.CHM”,如果找不到,运行Office的安装程序,选择应用程序的高级自定义,将Office共享功能中的Visual Basic for Applications及其帮助都选上就有了。
3. 生成Excel表时,如果要设置单元格的样式为文本,可以调用Range对象的SetNumberFormatLocal方法,参数是COleVariant(“@”),这个地方折腾了我不少时间,起先总以为是设置Style什么的,好一会也没弄明白,后来是利用Excel的宏功能,将设置单元格样式的操作记录成VBA程序,才得到如上的方法,其它类似问题应该也可以类似处理。
4. 关于Excel表中有数据的单元格范围,可以对一个已打开的Range对象调用GetCurrentRegion方法来得到。
5. 用完后(包括碰到异常)别忘记调用_Application的Quit方法,不然进程列表中要有一堆EXCEL.EXE了:)
x. 天真是冷啊,打字困难ing…考虑开空调了。
This entry was posted in 软件开发 and tagged , . Bookmark the permalink.

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s