Qt Xlsx安装教程

Qt Xlsx安装教程

安装perl

如果没有安装perl,请参考perl Window安装教程

下载QtXlsxWriter源码

下载地址

ming32-make编译32 lib库

bash 复制代码
C:\Qt\Qt5.12.12\5.12.12\mingw73_32>d:
D:\>cd D:\Code\QtXlsxWriter-master\QtXlsxWriter-master
D:\Code\QtXlsxWriter-master\QtXlsxWriter-master>cd src
D:\Code\QtXlsxWriter-master\QtXlsxWriter-master\src 的目录
D:\Code\QtXlsxWriter-master\QtXlsxWriter-master\src>qmake src.pro
D:\Code\QtXlsxWriter-master\QtXlsxWriter-master\src>mingw32-make
D:\Code\QtXlsxWriter-master\QtXlsxWriter-master\src>mingw32-make install

ming32-make编译64 lib库

bash 复制代码
C:\Qt\Qt5.12.12\5.12.12\mingw73_64>d:
D:\>cd D:\Code\QtXlsxWriter-master\QtXlsxWriter-master
D:\Code\QtXlsxWriter-master\QtXlsxWriter-master>cd src
D:\Code\QtXlsxWriter-master\QtXlsxWriter-master\src 的目录
D:\Code\QtXlsxWriter-master\QtXlsxWriter-master\src>qmake src.pro
D:\Code\QtXlsxWriter-master\QtXlsxWriter-master\src>mingw32-make
D:\Code\QtXlsxWriter-master\QtXlsxWriter-master\src>mingw32-make install

测试读写接口

CMakeLists.txt

bash 复制代码
cmake_minimum_required(VERSION 3.14)

project(TestQtXlsx LANGUAGES CXX)

set(CMAKE_INCLUDE_CURRENT_DIR ON)

set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(QT NAMES Qt6 Qt5 COMPONENTS Core Xlsx REQUIRED)
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Xlsx REQUIRED)


add_executable(TestQtXlsx
  main.cpp
)
target_link_libraries(TestQtXlsx Qt${QT_VERSION_MAJOR}::Core)
target_link_libraries(TestQtXlsx Qt${QT_VERSION_MAJOR}::Xlsx)

测试代码

cpp 复制代码
#include <QCoreApplication>
#include <QDate>
#include <QTime>
#include <QDebug>
#include "xlsxdocument.h"

static void test_xlsx_write()
{
    //定义一个QXlsx文档对象
    QXlsx::Document xlsx("example.xlsx");

    //设置单元格水平左对齐 垂直居中对齐格式
    QXlsx::Format format;
    format.setHorizontalAlignment(QXlsx::Format::AlignLeft);
    format.setVerticalAlignment(QXlsx::Format::AlignVCenter);

    //写第1列第1行单元格内容
    xlsx.write("A1", "Hello Qt!", format);
    //写第1列第2行单元格内容
    xlsx.write("A2", 12345,format);
    //写第1列第3行单元格内容
    xlsx.write("A3", "=44+33",format);
    //写第1列第4行单元格内容
    xlsx.write("A4", true,format);
    //写第1列第5行单元格内容
    xlsx.write("A5", "http://qt-project.org",format);
    //写第1列第6行单元格内容
    xlsx.write("A6", QDate(2013, 12, 27),format);
    //写第1列第7行单元格内容
    xlsx.write("A7", QTime(6, 30),format);

    //设置行高和列宽
    QXlsx::CellRange range = xlsx.dimension();
    int row = range.rowCount();
    int col = range.columnCount();
    xlsx.setColumnWidth(1,col,30);
    xlsx.setRowHeight(1,row, 20);

    //保存xlsx文件
    xlsx.save();

    return ;
}

static void test_xlsx_read()
{
    //定义一个QXlsx文档对象
    QXlsx::Document xlsx("example.xlsx");

    //读取行列数
    QXlsx::CellRange range = xlsx.dimension();
    int row = range.rowCount();
    int col = range.columnCount();
    qDebug()<<"row="<<row<<"col="<<col;
    
	 //读取第1列第2行内容
    int a2 = xlsx.read("A2").toInt();
    qDebug()<<"A2 content="<<a2;
}

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    test_xlsx_write();
    test_xlsx_read();

    return a.exec();
}

测试结果

参考文献:

Qt Xlsx使用教程、Qt操作Excel、Qt生成Excel图表、跨平台不依赖Office
Qt之qtxlsx(Excel读取)开源库使用示例
QtXlsxWriter源码地址

相关推荐
赵鑫亿5 分钟前
2.C++的变量,输入,输出
开发语言·c++
Ai 编码助手12 分钟前
Go语言如何实现限制用户 1 分钟内最多请求 1000 次?
开发语言·后端·golang
Conmi·白小丑1 小时前
Conmi的正确答案——Rider中引入WebView2包(C#)
开发语言·c#
SomeB1oody1 小时前
【Rust自学】13.8. 迭代器 Pt.4:创建自定义迭代器
开发语言·后端·rust
半夏知半秋1 小时前
rust学习-函数的定义与使用
服务器·开发语言·后端·学习·rust
王老师青少年编程2 小时前
gesp(C++五级)(12)洛谷:B4051:[GESP202409 五级] 小杨的武器
开发语言·数据结构·c++·算法·gesp·csp
kuan_li_lyg2 小时前
ROS2 与机器人视觉入门教程(ROS2 OpenCV)
开发语言·人工智能·opencv·计算机视觉·matlab·机器人·ros
斯内科2 小时前
C#使用WMI获取控制面板中安装的所有程序列表
开发语言·c#·wmi
轩源源2 小时前
数据结构——AVL树的实现
开发语言·数据结构·c++·avl树·函数模板·双旋·单旋
新知图书2 小时前
Linux C\C++方式下的文件I/O编程
c语言·开发语言·c++