首页| 论坛| 消息

标题:使用QAxObject模块获取Excel行数错误
作者:bigcatt
日期:2022-10-26 17:26
内容:

源代码:
int calculate_procedure::GetRowsCount()
{
QAxObject* m_pWorkSheet;
int iRows = 0;
QAxObject* pRows = m_pWorkSheet->querySubObject("Rows");
iRows = pRows->property("Count").toInt();
returniRows;
}
代码运行结果的行数: 80000多行
实际Excel 行数: 有内容的部分只有400多行


#1 [圣域天子 10-28 10:19]
由于需要linux下使用,我已经用上 qxlsx 了,推荐试试
#2 [alexltr 11-01 21:01]
如果要获得有内容范围的行数,可以用ActiveSheet.UsedRange.Rows.Count
这是VBA代码,C++代码调整一下就可以了。
#3 [bigcatt 11-02 16:35]
已解决
添加一行:
QAxObject* range = m_pWorkSheet->querySubObject("UsedRange");
即可获取到只有内容的行数
#4 回 bigcatt 的帖子 [圣域天子 11-02 17:41]
bigcatt:已解决
添加一行:
    QAxObject* range = m_pWorkSheet->querySubObject("UsedRange");
即可获取到只有内容的行数 (2022-11-02 16:35) 
试试先在Excel,把有效打印行改小一点,把一些有内容的放在打印行以外,前面的开始行也往下拉几行。
不要意外哦~~~

回复 发表
主题 版块