【求助,希望大神指导】VC如何读取Excel多个单元格的值

[复制链接]
查看11 | 回复5 | 2021-1-27 06:56:27 | 显示全部楼层 |阅读模式
我用OLE的方式读取Excel,想要一次读取整个工作表中单元格的数据,并存到二维数组中。网上大家有说用Range.GetValue2()函数返回一个二维数组,我定义了一个coleVariant二维数组coleVar[][],定义了单元格范围RangePtr指针,伪代码如下:(startCell和endCell是起止单元格的索引,如“A1”到“C5”)
coleVariantcoleVar[][];
Excel::RangePtrpExcelRange=NULL;
pExcelRange=pExcelSheet->GetRange(COleVariant(startCell),COleVariant(endCell));
coleVar=pExcelRange->GetValue2();
这样不行,错误码为:rrorC2440:'=':cannotconvertfrom'class_variant_t'to'classCOleVariant[34][2]';
可是,如果一个单元格一个单元格的读,与Excel进程之间的交互太多,因为数据量大,效率较低。
求大侠指教,该怎么做?
非常感谢!
分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:56:27 | 显示全部楼层
如果有大侠愿意指教,我扣扣1028794289,非常感谢!
回复

使用道具 举报

千问 | 2021-1-27 06:56:27 | 显示全部楼层
有没有试过强制转换--飘过带顶
回复

使用道具 举报

千问 | 2021-1-27 06:56:27 | 显示全部楼层
引用2楼asdjy123的回复:有没有试过强制转换--飘过带顶
额,getValue2()返回一个coleVariant类型,最多也就是赋给coleVariant[][]的第一个元素。您说的强转,没明白。您能详细说明一下吗?谢谢!
回复

使用道具 举报

千问 | 2021-1-27 06:56:27 | 显示全部楼层
在Excel2003中开始记录宏,手动完成所需功能,结束记录宏,按Alt+F11键,查看刚才记录的宏对应的VBA代码。

回复

使用道具 举报

千问 | 2021-1-27 06:56:27 | 显示全部楼层
引用4楼zhao4zhong1的回复:在Excel2003中开始记录宏,手动完成所需功能,结束记录宏,按Alt+F11键,查看刚才记录的宏对应的VBA代码。
亲,读取多个单元格应该如何记录宏?谢谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行