qxls库导入
下载链接:https://github.com/dbzhang800/QtXlsxWriter
将下载好的 QtXlsxWriter-master\src\xlsx文件夹拷贝到工程目录下
##在工程文件 *.pro文件里添加如下代码
QXLSX_PARENTPATH=./xlsx/
QXLSX_HEADERPATH=./xlsx/
QXLSX_SOURCEPATH=./xlsx/
include(./xlsx/qtxlsx.pri)
到这里qxlsx已经导入进工程了,在需要使用的地方添加头文件即可
#include "xlsxdocument.h"
导出tableWidget到Excel文件
可直接参考如下代码段:
void Widget::on_pushButton_save_clicked()
{
/*创建一个新的Excel文件*/
QXlsx::Document xlsx;
/*写入表头*/
for (int col = 0; col < ui->tableWidget->columnCount(); ++col)
{
QTableWidgetItem *headerItem = ui->tableWidget->horizontalHeaderItem(col);
if (headerItem)
{
xlsx.write(1, col + 1, headerItem->text());
}
}
/*遍历tableWiget,将数据写入Excel*/
for (int row = 0; row < ui->tableWidget->rowCount(); ++row)
{
for (int col = 0; col < ui->tableWidget->columnCount(); ++col)
{
QTableWidgetItem *item = ui->tableWidget->item(row, col);
if (item)
{
xlsx.write(row + 2, col + 1, item->text());
}
}
}
/*保存文件的名字*/
QString f_name = GetDataTime_file_name() + ".xlsx";
if (xlsx.saveAs(f_name))
{
qDebug() << "Export successful!";
QMessageBox::information(this, "tips", "保存成功:" + QDir::currentPath() + "/" + f_name);
}
else
{
qDebug() << "Export failed!";
QMessageBox::warning(this, "warning", "文件保存失败");
}
}
QString Widget::GetDataTime_file_name()
{
return QDateTime::currentDateTime().toString("hh_mm_ss ");
}
我的QT版本是5.9.0