-
下载并安装QXlsx库,详见之前的博文Qt子线程创建excel文件报错QObject: Cannot create children for a parent that is in a different thread.-CSDN博客
cpp
// 创建一个XlsxDocument对象
QString filename = "D:\\mydocuments\\data_acquisition\\data\\test.xlsx";
QXlsx::Document xlsx(filename);
// 打开Excel文件
if (!xlsx.load()) {
qDebug() << "Failed to open Excel file.";
return;
}
// 获取工作表名称列表
QStringList sheetNames = xlsx.sheetNames();
if (sheetNames.isEmpty()) {
qDebug() << "No sheets found in the Excel file.";
}
// 选择第一个工作表
xlsx.selectSheet(sheetNames.first());
// 指定要读取的列(例如,第2列,索引从0开始)
int columnIndex = 1; // 列B(Excel中的第二列)
// 读取指定列的数据
int rowCount = xlsx.dimension().rowCount();
for (int row = 1; row <= rowCount; ++row) { // 跳过标题行,从第二行开始读取数据
QVariant cellValue = xlsx.cellAt(row, columnIndex)->value();
double voltage = cellValue.toDouble(); //经过这一步就可以得到正常的单元格数值,笔者的数值是双精度浮点型
}