PC 工具中需要操作xlsx格式的数据,前面使用的是QAxObject,需要一些设置,还要安装office的控件或者wps的控件,在一些电脑上面有的时候还会有异常,后面发现一个好像的开源库QXls,发现读写的速度比以前快,而且只需要简单的添加文件到工程中就可以。
Qxlsx 源码的地址:https://github.com/QtExcel/QXlsx
下载下来之后我们只是需要其中的一个文件夹:
将QXlsx 文件夹copy到你的工程目录下面
然后添加QXlsx.pri 到你工程的pro文件中
include($$PWD/QXlsx/QXlsx.pri)
下面给出一个简单的例子
头文件中定义一个
QXlsx::Document* m_xlsx = nullptr;if(!m_xlsx){m_xlsx = new QXlsx::Document("./xxxxx.xlsx", this);}if(m_xlsx->load()) // 判断文件是否打开成功(也可以使用isLoadPackage){qDebug() << "excel success";QXlsx::Worksheet* sheet =(QXlsx::Worksheet*) m_xlsx->sheet("SOAService_Deployment");if (!sheet){qDebug() << "Sheet 'SOAService_Deployment' not found";return ;}else{int row=sheet->dimension().lastRow();for(int i=3;i<=row;i++){std::shared_ptr<QXlsx::Cell> cell = sheet->cellAt(i, 19);if (cell){QVariant value = cell->readValue();model->appendRow(new QStandardItem(value.toString()));qDebug() << "Row:" << i << "Column:" << 19 << "Value:" << value.toString();}cell = sheet->cellAt(i, 20);QVariant value = cell->readValue();qDebug() << "Row:" << i << "Column:" << 20 << "Value:" << value.toString();}}}else{qDebug()<<"fail";}if (m_xlsx){delete m_xlsx;m_xlsx=nullptr;}
然后就可以把xlsx文件中的内容读取出来。