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
| void AAAA::on_exportButton_clicked() { 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
|