导出Excel

QT内置导出Excel CSV格式 QTableView版本

将QTableView的数据导出到Excel,csv格式,不适用外部库。

头文件引入

1
2
#include <QFile>
#include <QTextStream>

cpp文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
//导出Excel
void AAAA::on_exportButton_clicked()
{
// 创建一个CSV文件
QFile csvFile("AAAA.csv");
if (!csvFile.open(QIODevice::WriteOnly | QIODevice::Text)) {
QMessageBox msgBox;
msgBox.setText("无法打开文件");
msgBox.exec();
return;
}

QTextStream stream(&csvFile);

// 写入表头
QStringList header;
for (int col = 0; col < model->columnCount(); ++col)
{
header << model->headerData(col, Qt::Horizontal).toString();
}
stream << header.join(",") << "\n";

// 写入数据行
for (int row = 0; row < model->rowCount(); ++row)
{
QStringList rowData;
for (int col = 0; col < model->columnCount(); ++col)
{
QModelIndex index = model->index(row, col, QModelIndex());
rowData << model->data(index).toString();
}
stream << rowData.join(",") << "\n";
}

// 关闭文件
csvFile.close();

QMessageBox msgBox;
msgBox.setText("导出成功");
msgBox.exec();
}

ps:
前提是QtableView格式很完整,表头数据都有。
model:

1
QStandardItemModel* model;

导出Excel
http://zanderchan666.github.io/2023/10/01/导出Excel-0/
作者
Zander
发布于
2023年10月1日
许可协议