• 763阅读
  • 4回复

使用QAxObject模块获取Excel行数错误 [复制链接]

上一主题 下一主题
离线bigcatt
 

只看楼主 倒序阅读 楼主  发表于: 2022-10-26
源代码:

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

离线圣域天子

只看该作者 1楼 发表于: 2022-10-28
由于需要linux下使用,我已经用上 qxlsx 了,推荐试试
离线alexltr

只看该作者 2楼 发表于: 2022-11-01


如果要获得有内容范围的行数,可以用ActiveSheet.UsedRange.Rows.Count
这是VBA代码,C++代码调整一下就可以了。
我不从事IT,只是喜欢Qt。
我不是程序员,只是与程序有缘。
我写程序,只是为了让工作变得简单有序!

                      ----  一个一直在入门的编程学习者
离线bigcatt

只看该作者 3楼 发表于: 2022-11-02
已解决
添加一行:
    QAxObject* range = m_pWorkSheet->querySubObject("UsedRange");
即可获取到只有内容的行数
离线圣域天子

只看该作者 4楼 发表于: 2022-11-02
回 bigcatt 的帖子
bigcatt:已解决
添加一行:
    QAxObject* range = m_pWorkSheet->querySubObject("UsedRange");
即可获取到只有内容的行数 (2022-11-02 16:35) 

试试先在Excel,把有效打印行改小一点,把一些有内容的放在打印行以外,前面的开始行也往下拉几行。
不要意外哦~~~
快速回复
限100 字节
 
上一个 下一个