QT开发 或者 C++
如何使用QTableWidget读取一个Excel文件?这个Excel文件内包含多个sheet工作表。
如何使用QTableWidget存储一个包含多个sheet工作表的Excel文件?

如何使用QTableWidget存储一个包含多个sheet工作表的Excel文件?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- CQ.abc 2023-03-07 16:14关注
要使用C++实现Excel文件的读取和写入,需要使用第三方库。常用的是Qt中的Qt Xlsx和libxl。
使用Qt Xlsx读取Excel文件,需要将Qt Xlsx添加到项目中。以下是一个示例程序,演示如何使用QTableWidget读取Excel文件中的数据:
#include <QApplication> #include <QTableWidget> #include <QtXlsx> #include <QDebug> int main(int argc, char *argv[]) { QApplication a(argc, argv); QTableWidget table; table.setWindowTitle("Excel Reader"); // 打开Excel文件 Document xlsx("example.xlsx"); // 获取工作表数量 int sheetCount = xlsx.workbook()->sheetCount(); for (int i = 0; i < sheetCount; i++) { // 获取工作表对象 Worksheet *sheet = xlsx.workbook()->sheet(i); // 添加新的标签页 table.insertTab(i, new QWidget(), sheet->sheetName()); // 获取工作表的行数和列数 int rowCount = sheet->dimension().rowCount(); int columnCount = sheet->dimension().columnCount(); // 设置表格的行数和列数 table.widget(i)->setLayout(new QVBoxLayout()); table.widget(i)->layout()->addWidget(new QTableWidget(rowCount, columnCount, &table)); // 循环读取每个单元格的数据并设置到表格中 for (int row = 1; row <= rowCount; row++) { for (int col = 1; col <= columnCount; col++) { // 获取单元格对象 Cell *cell = sheet->cellAt(row, col); // 获取单元格的值 QVariant value = cell->value(); // 设置单元格的值到表格中 QTableWidgetItem *item = new QTableWidgetItem(value.toString()); table.widget(i)->layout()->itemAt(0)->widget()->setItem(row - 1, col - 1, item); } } } table.show(); return a.exec(); }
使用Qt Xlsx写入Excel文件,同样需要将Qt Xlsx添加到项目中。以下是一个示例程序,演示如何使用QTableWidget写入Excel文件中的数据:
#include <QApplication> #include <QTableWidget> #include <QtXlsx> #include <QDebug> int main(int argc, char *argv[]) { QApplication a(argc, argv); QTableWidget table(3, 3); table.setItem(0, 0, new QTableWidgetItem("A1")); table.setItem(0, 1, new QTableWidgetItem("B1")); table.setItem(0, 2, new QTableWidgetItem("C1")); table.setItem(1, 0, new QTableWidgetItem("A2")); table.setItem(1, 1, new QTableWidgetItem("B2")); table.setItem(1, 2, new QTableWidgetItem("C2")); table.setItem(2, 0, new QTableWidgetItem("A3")); table.setItem(2, 1, new QTableWidgetItem("B3")); table.setItem(2, 2, new QTableWidgetItem("C3")); // 新建Excel文件 Document xlsx; // 添加工作表 xlsx.addSheet("Sheet1"); // 获取工作表对象 Worksheet *sheet = xlsx.currentWorksheet(); // 获取表格的行数和列数 int rowCount = table.row
望采纳🥰🥰🥰
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录