湛江免费建站模板,网页游戏服务端,成都最好玩的地方排名,天津营销网站建设文章目录 1. 导入QXlsx库2. 使用 QXlsx库 读取 .xlsx 文件小结 网上有很多教程#xff0c;但太费劲了#xff0c;这里有个非常简便的好方法#xff0c;分享给大家。 1. 导入QXlsx库
转载链接 #xff1a;https://github.com/QtExcel/QXlsx/blob/master/HowToSetProject.md… 文章目录 1. 导入QXlsx库2. 使用 QXlsx库 读取 .xlsx 文件小结 网上有很多教程但太费劲了这里有个非常简便的好方法分享给大家。 1. 导入QXlsx库
转载链接 https://github.com/QtExcel/QXlsx/blob/master/HowToSetProject.md
以下是使用 QXlsx 的一种简便方法。 此方法仅适用于 qmake若使用 cmake请查看其他文档。 这里介绍在 Windows 系统下的应用方法。
设置步骤 1️⃣ 从 GitHub 克隆源代码 git clone https://github.com/j2doll/QXlsx.git
2️⃣ 打开 Qt Creator 如果你不知道如何使用 Qt Creator请访问 Qt 公司网站https://www.qt.io/qt-features-libraries-apis-tools-and-ide/
3️⃣ 创建你自己的 Qt 项目。
4️⃣ 示例是控制台应用程序。
5️⃣ 设置项目名称。当前项目名称是 HelloQXlsx。
6️⃣ HelloQXlsx 项目已创建。
7️⃣ 项目当前所在目录
8️⃣ 将 QXlsx 代码复制到你的应用项目中 xcopy c:\workspace\github\QXlsx\QXlsx c:\workspace\HelloQXlsx /s/e 主要复制这四个内容
9️⃣ 项目当前的目录与文件 在你的 Qt 项目*.pro 文件中添加 QXlsx 库相关代码
应用 Qt 项目的 QXlsx 代码
QXLSX_PARENTPATH./ # 当前 QXlsx 路径是. . 表示当前目录
QXLSX_HEADERPATH./header/ # 当前 QXlsx 头文件路径是./header/
QXLSX_SOURCEPATH./source/ # 当前 QXlsx 源文件路径是./source/
include (./QXlsx.pri)1️⃣1️⃣ 为示例设置头文件和命名空间然后添加 “Hello World” 代码。
//main.cpp
#include QCoreApplication
#include xlsxdocument.h
#include xlsxchartsheet.h
#include xlsxcellrange.h
#include xlsxchart.h
#include xlsxrichstring.h
#include xlsxworkbook.h
using namespace QXlsx;int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);QXlsx::Document xlsx;// 将 “Hello Qt!” 写入单元格 (A,1)这是共享字符串。xlsx.write (A1, Hello Qt!); xlsx.saveAs (Test.xlsx); // 将文档保存为 “Test.xlsx”return 0;// return a.exec();
}
1️⃣2️⃣ 构建并运行项目
1️⃣3️⃣ 会创建一个可执行文件*.exe和一个 Excel 文件.xlsx。
2. 使用 QXlsx库 读取 .xlsx 文件
#include mainwindow.h#include QApplication
#include xlsxdocument.h
#include xlsxchartsheet.h
#include xlsxcellrange.h
#include xlsxchart.h
#include xlsxrichstring.h
#include xlsxworkbook.h
using namespace QXlsx;#include QDebugint main(int argc, char *argv[])
{QApplication a(argc, argv);MainWindow w;w.show();QString filePath Test.xlsx;// 创建QXlsx::Document对象并加载文件QXlsx::Document xlsx(filePath);// 检查文件是否成功加载if (xlsx.isLoadPackage()) {int sheetCount xlsx.workbook()-sheetCount();for (int sheetIndex 0; sheetIndex sheetCount; sheetIndex) {QXlsx::Worksheet *sheet dynamic_castQXlsx::Worksheet*(xlsx.workbook()-sheet(sheetIndex));if (sheet) {int rowCount sheet-dimension().lastRow();int columnCount sheet-dimension().lastColumn();for (int row 1; row rowCount; row) {for (int column 1; column columnCount; column) {std::shared_ptrQXlsx::Cell cell sheet-cellAt(row, column);if (cell) {QString value cell-value().toString();qDebug() Sheet sheetIndex Cell( row , column ): value;}}}}}} else {qDebug() 文件加载失败;}return a.exec();
}这段 C 代码主要实现了一个使用 Qt 框架结合QXlsx库来读取 Excel 文件的功能同时启动了一个 Qt 图形界面应用程序以下是详细解释 头文件包含 #include mainwindow.h引入主窗口类的头文件推测这个程序还关联了一个图形化的主窗口界面。#include QApplication这是 Qt 应用程序的基础类用于管理 GUI 应用程序的控制流和主要设置每个 Qt GUI 程序都需要一个QApplication对象。接下来一系列#include xlsxdocument.h 等头文件它们来自QXlsx库用于操作 Excel 文件提供了诸如文档、工作表、单元格范围、图表、富文本字符串以及工作簿相关的类定义。using namespace QXlsx;使用QXlsx命名空间这样后续代码使用该库中的类时无需再显式写出命名空间前缀。#include QDebug引入用于调试输出的头文件。 主函数main QApplication a(argc, argv);创建QApplication对象argc和argv是程序启动时的命令行参数这一步初始化了 Qt 的应用程序环境为后续的图形界面展示和事件处理做准备。MainWindow w; 和 w.show();实例化MainWindow类对象并调用show方法显示主窗口这部分是用于展示图形化界面的常规操作。 Excel 文件读取部分 QString filePath Test.xlsx;定义要读取的 Excel 文件路径这里指定文件名为Test.xlsx。 QXlsx::Document xlsx(filePath);创建QXlsx::Document对象尝试加载指定路径的 Excel 文件。 if (xlsx.isLoadPackage())检查文件是否成功加载如果加载成功后续代码开始遍历读取文件内容否则输出 “文件加载失败” 的调试信息。 int sheetCount xlsx.workbook()-sheetCount();获取工作簿中的工作表数量xlsx.workbook()返回工作簿对象sheetCount()获取工作表总数。 接下来的嵌套 for 循环 外层循环遍历每个工作表索引sheetIndex。 QXlsx::Worksheet *sheet dynamic_castQXlsx::Worksheet*(xlsx.workbook()-sheet(sheetIndex));通过dynamic_cast将抽象工作表指针转换为具体的Worksheet指针确保后续操作是针对正确类型的工作表。 内层两个嵌套for 循环遍历每个工作表的行和列 int rowCount sheet-dimension().lastRow(); 和 int columnCount sheet-dimension().lastColumn(); 获取当前工作表的行数和列数。std::shared_ptrQXlsx::Cell cell sheet-cellAt(row, column);获取指定行列位置的单元格这里返回的是智能指针。if (cell)判断单元格是否存在如果存在将其值转换为QString类型并输出输出格式包含工作表索引、行列信息和单元格的值。 程序返回 return a.exec();进入 Qt 应用程序的事件循环等待用户操作如关闭窗口、点击按钮等程序会持续运行直到用户触发退出事件之后返回系统结束程序。
小结 万事开头难QT库的配置没有python简单所以其慢慢的落幕不是没有道理的网上可以找到很多资料方法千奇百怪但试过之后方知只有那么一两种适合于自己所以实践出真知你我共勉。