QT 如何读取大数据量的Excel文件

QT 如何读取大数据量的Excel文件,第1张

1

貌似Excel最多只有1048576行,你这150万行我不知道是怎么放到一个表里面的。

2

数据100多玩行你可以将数据存放在Access或者其他的数据库中或许会比较好一点。

1:在项目文件中添加 QT+=axcontainer模块

2:头文件包含 #include<QAxObject>

3:定义一个QAxObjec对象并且指定父对象

4:连接控件,控件通常有excel和wps两种,大多数是excel,但需注意电脑上是否

安装了excel以及excel是否激活,因为这两种情况都会导致读取失败

实例

//加入用户电脑没有安装excel,setControl的返回值是零

//第二条if语句是判断用户有没有安装wps,有的话就打开wps控件

if (!excelsetControl("ExcelApplication"))

    {

        if (!excelsetControl("ketApplication"))  //连接Excel控件

        {

            QMessageBox::about(NULL, "提示", "请安装excel或wps  ");

            return;

        }

    }

5:设置读取xlsx文件对象的属性

实例:

excelsetProperty("Visible", true);//设置xlsx文件是否可见

6:获取工作簿集合

实例:

  QAxObject work_books = excelquerySubObject("WorkBooks");

7:通过调用COM中的一个函数来打开我们的xlsl文件

实例:

work_books->dynamicCall("Open (const QString&)", QString("D:/luohuiqing/qtexcelxlsx"));

/调用COM中名为Open的函数,并将第二个参数当做Open的形参传入/

8:获取活动工作簿

实例:

QAxObject work_book = excelquerySubObject("ActiveWorkBook");//获取活动工作簿

9:获取所有的工作表

实例:

QAxObject work_sheets = work_book->querySubObject("WorkSheets");//获取所有的工作表,如图

10:获取工作表数目

实例:

int sheet_count = work_sheets->property("Count")toInt();  //获取工作表数目

11在判断获取的工作表数目大于零的情况下,对表进行我们想要的 *** 作,如:

111:获取我们工作簿中的某张表

实例:

QAxObject work_sheet = work_book->querySubObject("Sheets(int)", 1);

/获取工作簿中的第一张表/

112:获取我们表中值的集合

实例:

QAxObject usedRange=work_sheet->querySubObject("UsedRange");

QVariant var=usedRange->dynamicCall("value");

113:将我们得到的值存入一个QVariantList容器中

实例:

QVariantList varRowContents=vartoList();

114:将数据的数量用一个const的整形变量保存下来

115:注意数据在容器中的存储顺序是一行一行存储的

12:在我们对xslx文件 *** 作结束后,应该关闭wps或excel,防止有进程残留

实例:

exceldynamicCall("Quit(void)");

以上就是关于QT 如何读取大数据量的Excel文件全部的内容,包括:QT 如何读取大数据量的Excel文件、2021-04-15qt对xlsx文件的读取、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10196322.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存