一、获取QtXlsx
https://github.com/dbzhang800/QtXlsxWriter
二、编译
1、下载并解压,得到如下文件
2、用QtCreater打开,仅构建src项目即可
3、构建报错,将QList改为QVector即可,需要添加#include <QVector>
4、编译成功后得到如下目录
5、拷贝bin目录下文件到Qt安装目录中,注意所要使用得编译器类型,我的C:\Qt\Qt5.12.4\5.12.4\msvc2017_64\bin
->
6、拷贝include目录到C:\Qt\Qt5.12.4\5.12.4\msvc2017_64\include
->
注意,QtXlsx中得部分头文件需要替换为E:\download\QtXlsxWriter-master\src\xlsx中得响应文件
7、拷贝下图中选中的lib中得文件到C:\Qt\Qt5.12.4\5.12.4\msvc2017_64\lib
8、拷贝下面文件到C:\Qt\Qt5.12.4\5.12.4\msvc2017_64\mkspecs\modules
三、使用
1、.pro文件中添加QT+= xlsx
2、头文件包含:
#include "QtXlsx/QtXlsx"
3、写
QXlsx::Document xlsx;
xlsx.write("A1", "Hello Qt!");
xlsx.saveAs("Test.xlsx");
/////////
QXlsx::Document xlsx(path);
for (int i = 0; i < tbl->columnCount(); i++) {
xlsx.write(1, i + 1, tbl->horizontalHeaderItem(i)->text());
}
for (int r = 0; r < tbl->rowCount(); r++) {
for (int c = 0; c < tbl->columnCount(); c++) {
QString item_text = tbl->item(r, c)->text();
xlsx.write(r + 2, c + 1, item_text);
}
}
QMessageBox::information(0, tr("Export"), xlsx.save() ? tr("Save sessuced!") : tr("Save failed!"));
4、读
QString path = QFileDialog::getOpenFileName(m_wgt, "file");
if(file_path.isEmpty()) return;
if(!file_path.contains(".xlsx")) {
QMessageBox::warning(m_wgt, tr("Warning"), tr("File selection error, place select again!"));
return;
}
QXlsx::Document xlsx(path);
QXlsx::Workbook *workBook = xlsx.workbook();
QXlsx::Worksheet *workSheet = static_cast<QXlsx::Worksheet*>(workBook->sheet(0));//第一个标签页
QDebug() << workBook->sheet(0)->sheetName();
QString value;
for (int i = 0; i <= workSheet->dimension().rowCount(); i++)
{
for (int j = 1; j <= workSheet->dimension().columnCount(); j++)
{
QXlsx::Cell *cell = workSheet->cellAt(i, j);
value = cell->value().toString();
QDebug() << value;
}
}