基于 QtXlsxWriter 的excel表格生成

 QtXlsxWriter 第三方库 虽然几年没有更新,但是目前来看 就操作 excel表格而言,仍然十分方便。

一,git 地址 :https://github.com/dbzhang800/QtXlsxWriter

       项目主页:http://qtxlsx.debao.me/

二,编译

  生成库文件 和头文件引用

三,应用

(1),工程 包含   

QT += core gui xlsx

 

(2),示例 代码

 

xlsx.write(地址,格式)

 

 

 

#include "widget.h"
#include "ui_widget.h"
 
#include <QDebug>
#include "xlsxdocument.h"
#include "xlsxrichstring.h"
#include "xlsxworkbook.h"
#include "xlsxformat.h"
#include "xlsxconditionalformatting.h"
QTXLSX_USE_NAMESPACE
 
Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
 
    QString aircrew;//机组
    QString flightDate;//日期
    QString flightPlace;//起飞地点
    QString sorties;//架次
 
    QXlsx::Document xlsx;
 
    Format format1;
    format1.setFontBold(true);
    format1.setBorderStyle(Format::BorderThin);
    format1.setPatternBackgroundColor(Qt::lightGray);
 
    //外边框 灰色
    Format f_border;
    f_border.setPatternBackgroundColor(Qt::lightGray);
    f_border.setBorderStyle(Format::BorderThin);
    for (int row=2; row<=8; ++row) {
        for (int col=1; col<=9; ++col)
            xlsx.write(row, col,QVariant(),f_border);
    }
 
    Format centerAlign;
    centerAlign.setHorizontalAlignment(Format::AlignHCenter);
    centerAlign.setVerticalAlignment(Format::AlignVCenter);
    centerAlign.setBorderStyle(Format::BorderThin);//外边框
    centerAlign.setPatternBackgroundColor(Qt::yellow);
    centerAlign.setFontBold(true);
 
    Format centerTitle;
    centerTitle.setHorizontalAlignment(Format::AlignHCenter);
    centerTitle.setVerticalAlignment(Format::AlignVCenter);
    xlsx.write("A1", QStringLiteral("航摄飞行记录表"));
    xlsx.mergeCells("A1:I1",centerTitle);
 
    xlsx.write("A2",QStringLiteral("起飞"),centerAlign);
    xlsx.write("B2",QStringLiteral("机组"),format1);
    xlsx.write("C2",aircrew,f_border);
    xlsx.write("D2",QStringLiteral("日期"),format1);
    xlsx.write("E2",flightDate,f_border);
    xlsx.write("F2",QStringLiteral("起飞地点"),format1);
    xlsx.write("G2",flightPlace,f_border);
    xlsx.write("H2",QStringLiteral("架次"),format1);
    xlsx.write("I2",sorties,f_border);
 
    xlsx.write("A3",QStringLiteral("摄区"),centerAlign);
    xlsx.write("B3",QStringLiteral("相对高度"),format1);
    xlsx.write("D3",QStringLiteral("航区角度"),format1);
    xlsx.write("F3",QStringLiteral("航线条数"),format1);
    xlsx.write("H3",QStringLiteral("地面分辨率"),format1);
    xlsx.mergeCells("A3:A4",centerAlign);
 
    xlsx.write("B4",QStringLiteral("航向重叠度"),format1);
    xlsx.write("D4",QStringLiteral("旁向重叠度"),format1);
    xlsx.write("F4",QStringLiteral("航线间隔"),format1);
    xlsx.write("H4",QStringLiteral("基线长度"),format1);
 
    xlsx.write("A5",QStringLiteral("飞机"),centerAlign);
    xlsx.write("B5",QStringLiteral("飞机型号"),format1);
    xlsx.write("D5",QStringLiteral("飞机编号"),format1);
    xlsx.write("F5",QStringLiteral("飞控型号"),format1);
    xlsx.write("H5",QStringLiteral("飞行速度"),format1);
 
    xlsx.write("A6",QStringLiteral("航摄仪"),centerAlign);
    xlsx.write("B6",QStringLiteral("航摄仪型号"),format1);
    xlsx.write("D6",QStringLiteral("焦距"),format1);
    xlsx.write("F6",QStringLiteral("拍照模式"),format1);
    xlsx.write("H6",QStringLiteral("POS"),format1);
 
 
    xlsx.write("A7",QStringLiteral("机组"),centerAlign);
    xlsx.write("B7",QStringLiteral("操控手"),format1);
    xlsx.write("D7",QStringLiteral("地面站"),format1);
    xlsx.write("F7",QStringLiteral("测量电压"),format1);
    xlsx.write("H7",QStringLiteral("落地电压"),format1);
 
    xlsx.write("A8",QStringLiteral("降落"),centerAlign);
    xlsx.write("B8",QStringLiteral("起飞时间"),format1);
    xlsx.write("D8",QStringLiteral("降落时间"),format1);
    xlsx.write("F8",QStringLiteral("RTK"),format1);
    xlsx.write("H8",QStringLiteral("地面站电压"),format1);
 
    bool isSave =  xlsx.saveAs("D:\\FD\\fgroundcontrol\\qgroundcontrol\\libs\\QtXlsxWriter-master\\build\\myTest\\Test1.xlsx");
    qDebug()<<"isSave"<<isSave;
}
 
Widget::~Widget()
{
    delete ui;
}
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

土拨鼠不是老鼠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值