一、Qt Xlsx库简介
官方文档:Qt Xlsx | QtXlsx 0.3 (debao.me)
QXlsx是可以读取和写入Excel文件的库。 它不需要Microsoft Excel,并且可以在Qt5支持的任何平台中使用。 该库可用于:
- 从头开始生成新的.xlsx文件
- 从现有的.xlsx文件提取数据
- 编辑现有的.xlsx文件
二、使用方法
-
创建xlsx文件
QXlsx::Document xlsx("D:/test/test.xlsx"); xlsx.write("A1", "Hello Qt!"); xlsx.save();
-
单元格操作
/// 设置单元格样式 QXlsx::Format style; // 单元格样式 style.setFontBold(true); // 字体加粗 style.setFont(QFont("黑体", 15)); // style.setHorizontalAlignment(QXlsx::Format::AlignHCenter);// 横向居中 style.setVerticalAlignment(QXlsx::Format::AlignVCenter);// 纵向居中 style.setBorderStyle(QXlsx::Format::BorderThin); // 边框样式 style.setTextWrap(true); // 单元格自动换行 /// 合并单元格操作 xlsx.mergeCells(QXlsx::CellRange(1, 1, 3,1),style); // 1行1列到3行1列合并为一个单元格
-
图表操作
/// 构建图表数据 QXlsx::Document xlsx; for (int i = 1; i < 10; ++i) { xlsx.write(i, 1, i * i * i); // A1:A9 xlsx.write(i, 2, i * i); // B1:B9 xlsx.write(i, 3, i * i - 1); // C1:C9 } /// 根据数据插入图表 QXlsx::Chart* Chart = xlsxDoc.insertChart(2, 1, QSize(2000, 600)); // 插入图表 //Chart1->setChartType(QXlsx::Chart::CT_BarChart); //直方图 Chart->setChartType(QXlsx::Chart::CT_LineChart); //折线图 Chart->setChartTitle("椭圆度曲线图"); Chart->addSeries(QXlsx::CellRange(1, 1, 10, 3), xlsxDoc.sheet("Sheet1"), true, true, true);
-
工作簿操作
/// 添加工作簿 "Sheet2" xlsxDoc.addSheet("Sheet2"); /// 选择当前操作的工作簿为 "Sheet2" xlsxDoc.selectSheet("Sheet2");