qt生成excel文件
时间: 2025-06-28 08:11:01 浏览: 8
### 使用Qt创建Excel文件
#### QtXlsx库简介
QtXlsx是一个专门用于读取和写入Excel文件的库,能够在Qt5支持的所有平台上运行而不依赖于Microsoft Office[^3]。
#### 创建新Excel文件并保存数据
为了展示如何使用QtXlsx库创建一个新的Excel文档并向其中添加一些简单的表格内容:
```cpp
#include <QCoreApplication>
#include "xlsxdocument.h"
#include "xlsxcellrange.h"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// 创建一个工作簿实例
QXlsx::Document xlsx;
// 设置单元格A1的内容为"Hello World!"
xlsx.write(1, 1, QStringLiteral("Hello World!"));
// 将当前的工作表命名为"MySheet"
xlsx.renameSheet(QStringLiteral("MySheet"), QStringLiteral("NewSheetName"));
// 添加更多行到Excel文件中
QStringList headers;
headers << "ID" << "姓名" << "年龄";
int row = 2; // 开始位置是从第二行起始
foreach (const QString &headerText, headers) {
xlsx.write(row++, 1, headerText);
}
// 插入几条记录作为示例
QList<QVariantList> dataRows;
QVariantList record;
record.append(1001);
record.append("张三");
record.append(28);
dataRows.append(record);
record.clear();
record.append(1002);
record.append("李四");
record.append(34);
dataRows.append(record);
for (int i=0;i<dataRows.size();i++) {
const QVariantList& rowData = dataRows.at(i);
for (int j=0;j<rowData.count();j++)
xlsx.write(i+row,j+1,rowData[j]);
}
// 保存生成的Excel文件至磁盘上的特定路径
bool ok = xlsx.saveAs("./example.xlsx");
if (!ok){
qDebug()<<"Failed to save file.";
}else{
qDebug()<<"File saved successfully!";
}
}
```
上述代码片段展示了怎样利用QtXlsx库来构建一份包含基本结构(列标题)及若干条目在内的小型电子表格,并最终将其存储下来。此过程涉及到了初始化`QXlsx::Document`对象、向指定坐标处填充值、重命名默认存在的sheet页以及调用方法完成实际物理层面的持久化操作等几个方面[^4]。
#### 关键特性说明
- **跨平台兼容性**:由于Qt本身具备良好的多操作系统适配能力,所以基于它的扩展模块自然也继承了这一优点,在Linux/Windows/macOS环境下均能正常运作。
- **独立性强**:不同于某些借助COM接口或其他第三方组件实现的功能集,QtXlsx完全依靠自身逻辑解析`.xlsx`格式,这意味着即使目标机器上未安装MS Office套件也能顺利完成相应任务。
- **易于集成**:只需引入相应的头文件即可快速开始编码实践;同时官方还提供了详尽的帮助手册帮助开发者理解API细节[^1]。
阅读全文
相关推荐

















