QXlsx生成excel文件简单易用不用过多介绍。
1.生成xlsx文件示例代码
针对本人业务需要说明:filename为xlsx的文件名包含具体路径,cc,shijian命名数据表的关键词,changci,shijian为数据库查询关键词。
void outputXlsx(const QString& filename, const QString&cc, const QString&changci, const QString&shijain){
int countRow = 0;
int countRec = 0;
//创建xlsx文件
QXlsx::Document xlsx(filename);
//修改工作表
if (xlsx.selectSheet("Sheet1")) {
xlsx.deleteSheet("Sheet1");
}
if (!xlsx.selectSheet(shijain + cc + "统计结果")) {
xlsx.addSheet(shijain + cc + "统计结果");
}
//设置表头样式
QXlsx::Format headFormat;
//设置列的背景颜色
headFormat.setPatternBackgroundColor(QColor(100,180,252));
headFormat.setFontSize(15);
headFormat.setHorizontalAlignment(QXlsx::Format::AlignHCenter);
headFormat.setVerticalAlignment(QXlsx::Format::AlignVCenter);
headFormat.setBorderColor(QColor(0,0,0));
//具体设置各个列的属性
xlsx.setColumnWidth(1,9);
xlsx.write(3,1,"序号",headFormat);
xlsx.setColumnWidth(2, 35);
xlsx.write(3,2,"身份证号",headFormat);
xlsx.setColumnWidth(3,20);
xlsx.write(3,3,"姓名",headFormat);
xlsx.setColumnWidth(4,12);
xlsx.write(3, 4, "性别", headFormat);
xlsx.setColumnWidth(5,25);
xlsx.write(3, 5, "准考证号", headFormat);
xlsx.setColumnWidth(6, 20);
xlsx.write(3, 6, "考场", headFormat);
xlsx.setColumnWidth(7, 10);
xlsx.write(3, 7, "座号", headFormat);
xlsx.setColumnWidth(8, 15);
xlsx.write(3, 8, "核查结果", headFormat);
xlsx.setColumnWidth(9, 15);
xlsx.write(3,9, "识别次数", headFormat);
countRow += 3;
//设置具体数据的格式
QXlsx::Format contentFormat;
contentFormat.setFontColor(QColor(Qt::black));
contentFormat.setFontSize(13);
contentFormat.setHorizontalAlignment(QXlsx::Format::AlignLeft);
contentFormat.setVerticalAlignment(QXlsx::Format::AlignVCenter);
//构建具体数据,并且设置数据格式
//未通过的
countRow += 1;
//数据库查询具体内容
QVector<AllAuthTjPojo> notPass = faceLogSrv->getAllAuthTjNotPassLog(changci,shijain);
if (notPass.size