注册 登录
编程论坛 VC++/MFC

求教: 关于VC操作Excel表的问题

linan03 发布于 2013-11-05 21:01, 718 次点击
我是使用VS2010, 通过导入本机EXCEL的TypeLib方式 来操作Excel表格的

现在有个需求: 截取表格(比如A3单元格 到 D9单元格),将截取的内容生成一个BMP文件, 而且要显示出网格。

生成BMP文件可以通过CImage实现。关键是怎么得到 那部分的位图数据。

我现在的想法是  直接打开EXCEL填满屏幕, 然后截图, 但是还没想好怎么定位到那个地方, 而且这种方法表格范围超出屏幕的话也很难办。
想先问一下  有没办法将某个单元格 移动到表格左上角位置(可能通过操作滚动条?)?

如果大家有其他方法 ,希望也请共享一下....  谢谢!!
3 回复
#2
yuccn2013-11-06 08:09
截图的办法 你怎么定位到 A3单元格 到 D9单元格?
这是个比较麻烦的事情,如果xls 本身没有提供接口,这样很麻烦的

你关注的是什么格式的文件?xls 还是xlsx?xlsx是xml格式的数据,自己分析下提取不难,xls 是老的office文档格式了,这个估计不久会被淘汰,目前很多只是为了兼容 而还保留他

开源分析office的工程也很多,不防试下,找个开源的工程来解析,在把数据自己绘图成图片,这样可能方便点
#3
linan032013-11-13 17:10
截图的问题已经解决了,用Range获取到单元格区域后,可以通过它的CopyPicture函数把 图片拷贝到剪贴板上,然后就是对剪贴板的操作了。还有一点,剪贴板上的图片格式是 图元文件格式,如果要保存为Bmp文件还要转换一下。

测试过 在xls和xlsx两种格式文档上都可以。

现在还有个问题是 TypeLib 生成的类需要导入 MSO库、VB库、EXCEL库,因为是#import方式导入,不是静态包含,目录不同的话,恐怕程序不支持其他版本的Office,我的电脑装的是2007,在2013上测试了一下,大部分操作都能用,但是还就保存图片这个不行,有待研究。

欢迎交流 QQ271747321。
#4
y17512013-12-02 08:14
学习学习
1