QT跨平台读写Excel

QT跨平台读写Excel

背景

开发框架QT,makefile构建工具CMake,编译器MinGW

Excel工具

考虑跨平台则不能使用针对微软COM组件的QAxObject来读写Excel,因此使用开源QtXlsx。
这里是将QXlsx当做源码嵌入使用

源码下载链接:
QtXlse-Gitee
QtXlse-Github

CMakeLists.txt

powershell 复制代码
cmake_minimum_required(VERSION 3.5)

#定义工程name
project(Excel_FPD)

# 添加Qt模块
find_package(Qt5 COMPONENTS Core Widgets Gui REQUIRED)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)

# 设置C++标准
set(CMAKE_CXX_STANDARD 11)

# 定义宏
add_compile_definitions(XLSX_NO_LIB)

# 设置路径变量
set(QXLSX ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/qtxlsx)

# 包含路径
include_directories(${QXLSX})

# 查找QXLSX相关的头文件和cpp文件
file(GLOB QXLSX_HEADERS ${QXLSX}/*.h)
file(GLOB QXLSX_SOURCES ${QXLSX}/*.cpp)


# 添加可执行文件
add_executable(Excel_FPD
    ${QXLSX_SOURCES}
    excelengine.cpp
    main.cpp
)


# 链接Qt模块
target_link_libraries(Excel_FPD
   Qt5::Core
   Qt5::Widgets
   Qt5::Gui
   Qt5::GuiPrivate
)


# 默认部署规则
#if(QNX)
#   set(target_path /tmp/${TARGET}/bin)
#elseif(UNIX AND NOT ANDROID)
#   set(target_path /opt/${TARGET}/bin)
#else()
#    set(target_path ${CMAKE_CURRENT_SOURCE_DIR}/bin)
#endif()

#if(NOT target_path STREQUAL "")
#   install(TARGETS Excel_FPD DESTINATION ${target_path})
#   message("here is target_path ${target_path}")
#endif()

工程目录


这里是将qtxlsxwriter-master\src\xlsx源码直接拷贝到目录qtxlsx下,删除无用的.pro和.pri文件,因为我使用CMake,不使用qmake。

接口使用方法可以参考官方文档

相关推荐
秋田君8 小时前
QT_QFontDialog类字体对话框
开发语言·qt
mabing99317 小时前
Qt QMessageBox、QDialogButtonBox中英文翻译动态切换
开发语言·qt
秋田君18 小时前
QT_QColorDialog颜色对话框
java·数据库·qt
秋田君18 小时前
QT_QT布局常用类QSplitter窗口分割类与QDockWidget窗口停靠类
开发语言·数据库·qt
Lhan.zzZ19 小时前
深入理解 windeployqt:混合 C++/Qt 项目的打包指南
开发语言·c++·qt
SunnyDays101119 小时前
Python 将 Excel(XLS/XLSX)转换为 JSON:导出工作簿、工作表、单元格区域与自定义 JSON 结构
python·json·excel·excel 转 json·导出 excel 到 json·xlsx 转 json·xls 转 json
Lhan.zzZ20 小时前
QML 开发中的“陷阱”:动态模型更新时,ComboBox 索引为何总是失效?
开发语言·qt
咯哦哦哦哦21 小时前
qt creator x86交叉编译arm 配置
开发语言·qt
chatexcel21 小时前
ChatExcel AI Word 升级:多模态读资料、按模板生成、智能排版配图,还能批注修订和联动Excel 复核
人工智能·ai·word·excel·ai写作
北极糊的狐1 天前
Excel快速拆分一列数据为两列(领养例子)该摘要描述了如何将包含姓名和电话的混合数据列拆分为单独的两列
excel