-
qt 快速读取excel实例代码
#Qt Windows 下快速读写Excel指南很多人搜如何读写excel都会看到用`QAxObject`来进行操作,很多人试了之后都会发现一个问题,就是慢,非常缓慢!因此很多人得出结论是`QAxObject`读写excel方法不可取,效率低。后来我曾试过用ODBC等数据库类型的接口进行读写,遇到中文嗝屁不说,超大的excel还是会读取速度慢。最后,看了一些开源的代码后发现,Windows下读取excel,还是用`QAxObject`最快!没错,就是用`QAxObject`读写最快!!!大家以后读取excel时(win下),不用考虑别的方法,用`QAxObject`就行,速度杠杠的,慢是你操作有误!下面就说说咋能提高其读取效率。#读取excel慢的原因这里不说如何打开或生成excel,着重说说如何快速读取excel。网上搜到用Qt操作excel的方法,读取都是使用类似下面这种方法进行:```C QVariant ExcelBase::read(int row, int col){ QVariant ret; if (this->sheet != NULL && ! this->sheet->isNull()) { QAxObject* range = this->sheet->querySubObject("Cells(int, int)", row, col); //ret = range->property("Value"); ret = range->dynamicCall("Value()"); delete range; } return ret;}```读取慢的根源就在于`sheet->querySubObject("Cells(int, int)", row, col)`试想有10000个单元就得调用10000次`querySubObject`,网络上90%的教程都没说这个`querySubObject`产生的`QAxObject*`最好进行手动删除,虽然在它的父级`QAxObject`会管理它的内存,但父级不析构,子对象也不会析构,若调用10000次,就会产生10000个`QAxObject`对象得益于[QT快速读取数据量很大的Excel文件](http://blog.csdn.net/a1069962325/article/details/49514377)此文,下面总结如何快速读写excel#快速读取excel文件原则是一次调用`querySubObject`把所有数据读取到内存中VBA中可以使用`UsedRange`把所有用到的单元格范围返回,并使用属性`Value`把这些单元格的所有值获取。这时,获取到的值是一个table,但Qt把它变为一个变量QVariant来储存,其实实际是一个`QList`,此时要操作里面的内容,需要把这个`QVariant`转换为`QList`先看看获取整个单元格的函数示意(这里ExcelBase是一个读写excel的类封装):```C QVariant ExcelBase::readAll(){ QVariant var; if (this->sheet != NULL && ! this->sheet->isNull()) { QAxObject *usedRange = this->sheet->querySubObject("UsedRange"); if(NULL == usedRange || usedRange->isNull()) { return var; } var = usedRange->dynamicCall("Value"); delete usedRange; } return var;}```
- 2020-05-28下载
- 积分:1
-
c++ 写的曲线(如内存使用、cup等)
有详细的注释说明,不用担心会上从网上下载的其源码没有注释等其他 问题,这是我用Qt写的一个曲线图形类,供广大网友学习参考。希望给带大家在学习C++时提供一些方便。
- 2023-06-29 00:25:03下载
- 积分:1
-
cpp
基于QT的界面开发。有两个按钮和两个图片显示框,点击按钮将本地图片显示出来。(QT-based interface development. There are two buttons and two image display box, click on the button to the local picture is displayed.)
- 2020-10-27 11:19:58下载
- 积分:1
-
testOpenCV
red ball tracking algorithm using opencv library in Qt
- 2014-12-10 22:44:00下载
- 积分:1
-
QT中文帮助文档
Qt 中文帮助文档, 对于初学者,英文又不好的鞋童 合适(Qt Chinese help document)
- 2018-03-20 09:58:39下载
- 积分:1
-
QT 做的串口调试助手
- 2022-01-31 18:13:18下载
- 积分:1
-
qt串口操作示例源码-QT编写的串口设备调试工具终极版
通过qt5操作串口 基本功能:1:支持16进制数据发送与接收。2:支持windows下COM9以上的串口通信。3:自动加载对应操作系统串口号。4:实时显示收发数据字节大小以及串口状态。高级功能:1:可自由管理需要发送的数据,每次只要从下拉框中选择数据即可,无需重新输入数据。2:可模拟设备回复数据,需要在主界面开启模拟设备回复数据。当接收到设置好的指令时,立即回复设置的回复指令。例如指定收到0x16 0x00 0xFF 0x01需要回复0x16 0x00 0xFE 0x01,则只需要在SendData.txt中添加一条数据16 00 FF 01:16 00 FE 01即可。3:可定时发送数据和保存数据到文本文件:,默认间隔5秒钟,可更改间隔时间。4:在不断接收到大量数据时,可以暂停显示数据来查看具体数据,后台依然接收数据但不处理,无需关闭串口来查看已接收到的数据。5:每次收到的数据都是完整的一条数据,而不是脱节的,做了延时处理。6:一套源码随处编译,无需更改串口通信类,已在XP/WIN7/UBUNTU/ARMLINUX系统下成功编译并运行。
- 2019-04-14下载
- 积分:1
-
QT天气查看工具
基于Baidu云服务的天气软件。
- 2022-06-03 03:44:30下载
- 积分:1
-
addressBook
简单记事本,实现简单的文本编辑功能,和win7下记事本功能基本类似(Simple Notepad, to achieve simple text editing features, and win7 notepad function under substantially similar)
- 2013-10-09 12:05:12下载
- 积分:1
-
TestSerial
说明: 本程序是利用QT编写的基于串口的读写,包含串口的设置,打开、关闭,读取,写入等操作(This program is based on serial port read and write written by using QT, including the setting of serial port, opening, closing, reading, writing and other operations.)
- 2020-06-21 03:00:01下载
- 积分:1