Qt Xlsx使用教程、Qt操作Excel、Qt生成Excel图表、跨平台不依赖Office 直接使用源码

1.Qt Xlsx库简介

官方文档:Qt Xlsx | QtXlsx 0.3 (debao.me)

下载地址:dbzhang800/QtXlsxWriter: .xlsx file reader and writer for Qt5 (github.com)

CSDN下载地址:QtXlsxWriter-master源码资源-CSDN文库

2.源码取出

3.目录结构

再根目录下创建一个 qtxlsx 文件夹 把src都解压进去

4.引入目录

.pro文件引入

复制代码
# 使用qtxlsx源代码
include(qtxlsx/src/xlsx/qtxlsx.pri)

软件代码引入

复制代码
//引入头文件
#include "xlsxdocument.h"

实例

自己弄的一个简单写入动作 需要的自改

复制代码
void MainWindow::appendXlsxFile(const QString &firmwareVersion, const QString &imei, const QString &imsi, const QString &ID1, const QString &ID2, const QString &macAddress) {
    QString fileName = "自定义名称.xlsx";

    QXlsx::Document xlsx(fileName); // This will load the file if it exists or create a new one

    if (!xlsx.sheetNames().isEmpty()) {
        // File exists, load the existing document
    } else {
        xlsx.addSheet("Device Info");
        QXlsx::Worksheet *sheet = xlsx.currentWorksheet();
        sheet->write(1, 1, "Firmware Version");
        sheet->write(1, 2, "IMEI");
        sheet->write(1, 3, "IMSI");
        sheet->write(1, 4, "ID1");
        sheet->write(1, 5, "ID2");
        sheet->write(1, 6, "MAC (Formatted)");
        sheet->write(1, 7, "MAC (Original)");
        sheet->write(1, 8, "Generation DateTime");
    }

    QXlsx::Worksheet *sheet = xlsx.currentWorksheet();
    int lastRow = sheet->dimension().lastRow() + 1;

    QString TmpstrMac = macAddress;
    TmpstrMac = TmpstrMac.remove(":");

    // 添加新行数据
    sheet->write(lastRow, 1, firmwareVersion);
    sheet->write(lastRow, 2, imei);
    sheet->write(lastRow, 3, imsi);
    sheet->write(lastRow, 4, ID1);
    sheet->write(lastRow, 5, ID2);
    sheet->write(lastRow, 6, TmpstrMac);
    sheet->write(lastRow, 7, macAddress);
    sheet->write(lastRow, 8, QDateTime::currentDateTime().toString(Qt::ISODate));

    if (xlsx.save()) {
        qDebug() << "XLSX file appended successfully.";
    } else {
        qDebug() << "Failed to save XLSX file.";
    }
}
相关推荐
绝世唐门三哥5 分钟前
使用Intersection Observer js实现超出视口固定底部按钮
开发语言·前端·javascript
Ayu阿予13 分钟前
C++从源文件到可执行文件的过程
开发语言·c++
C++业余爱好者14 分钟前
JVM优化入门指南:JVM垃圾收集器(GC)介绍
java·开发语言·jvm
福尔摩斯张15 分钟前
基于C++的UDP网络通信系统设计与实现
linux·c语言·开发语言·网络·c++·tcp/ip·udp
Trouvaille ~20 分钟前
【Java篇】基石与蓝图::Object 类与抽象类的双重奏
java·开发语言·javase·抽象类·类与对象·基础入门·object类
卜锦元22 分钟前
Golang中make()和new()的区别与作用?
开发语言·后端·golang
Light6032 分钟前
破局“数据孤岛”:构建业务、财务、指标三位一体的智能数据模型
java·大数据·开发语言
guygg8834 分钟前
基于Matlab的压缩感知信道估计算法实现
开发语言·算法·matlab
IMPYLH39 分钟前
Lua 的 warn 函数
java·开发语言·笔记·junit·lua
周杰伦_Jay1 小时前
【Java集合与线程池深度解析】底层原理+实战选型+避坑指南(附代码)
java·开发语言·python