QT开发 或者 C++
如何使用QTableWidget读取一个Excel文件?这个Excel文件内包含多个sheet工作表。
如何使用QTableWidget存储一个包含多个sheet工作表的Excel文件?
要使用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
望采纳🥰🥰🥰
不知道你这个问题是否已经解决, 如果还没有解决的话:说明:本实例将为全国省份城市的经纬度(b,l)转换为高斯坐标点(x,y)