Qt Excel读写 QXlsx的安装配置以及测试


引言
  Qt无自带的库处理Excel 文件,但可通过QAxObject 借助C接口进行Excel的读写1。亦可使用免费的开源第三方库:QXlsx,一个基于Qt库开发的用于读写Microsoft Excel文件的C++库。它提供了一组简单易用的API,可以方便地创建、修改和操作Excel文件。

一、安装配置
1.下载源码,如下图所示,QXlsx就是核心代码,里面还包含了很多示例。

2.创建一个工程,控制台或者带界面的都可以,将QXlsx复制到工程目录下。

3.在.pro文件中添加以下语句,将QXlsx添加到工程中,保存pro文件 (自动会执行qmake 或自己手动执行) :

1 # QXlsx code for Application Qt project 2 QXLSX_PARENTPATH=./QXlsx/ # current QXlsx path is . (. means curret directory) 3 QXLSX_HEADERPATH=./QXlsx/header/ # current QXlsx header path is ./header/ 4 QXLSX_SOURCEPATH=./QXlsx/source/ # current QXlsx source path is ./source/ 5 include(./QXlsx/QXlsx.pri)

二、简单测试

1.创建一个.xlsx文件,对单元格赋值,保存到磁盘上。

1 #include "mainwindoh" 2 #include <QApplication> 3 4 // QXlsx 5 #include "xlsxdocument.h" 6 #include "xlsxchartsheet.h" 7 #include "xlsxcellrange.h" 8 #include "xlsxchart.h" 9 #include "xlsxrichstring.h" 10 #include "xlsxworkbook.h" 11 12 int main(int argc, char *argv[]) 13

2.读取一个.xlsx文件,输出到控制台。(使用官方的ShowConsole代码)
修改官方代码.pro文件,配置添加QXlsx。修改xlsxFileName为刚才生成的Test.xlsx,运行即可。

1 // mainpp 2 3 #include <iostream> 4 #include <vector> 5 6 #include <QCoreApplication> 7 #include <QDebug> 8 #include <QDir> 9 #include <QVariant> 10 #include <QtCore> 11 #include <QtGlobal> 12 using namespace std; 13 14 // [0] include QXlsx headers 15 #include "xlsxcellrange.h" 16 #include "xlsxchart.h" 17 #include "xlsxchartsheet.h" 18 #include "xlsxdocument.h" 19 #include "xlsxrichstring.h" 20 #include "xlsxworkbook.h" 21 using namespace QXlsx; 22 23 #include "fort.hpp" // libfort 24 25 int main(int argc, char *argv[]) 26 39 40 // load new xlsx using new document 41 QXlsx::Document xlsxDoc(xlsxFileName); 42 xlsxDoc.isLoadPackage(); 43 44 int sheetIndexNumber = 0; 45 foreach (QString curretnSheetName, xlsxDoc.sheetNames()) 71 cellValues.push_back(tempValue); 72 } 73 74 for (int ic = 0; ic < clList.size(); ++ic) } 90 91 QString str = var.toString(); 92 93 cellValues[row][col] = str; 94 } 95 96 fort::table fortTable; 97 for (int rc = 0; rc < maxRow; rc++) 102 fortTable << fort::endr; // change to new row 103 } 104 105 std::cout << fortTable.to_string() << std::endl; // display forttable row 106 107 sheetIndexNumber++; 108 } 109 110 return 0; 111 }



上一篇:Qt 求圆和椭圆上任意角度点的坐标

下一篇:Siemens 西门子 S7协议及报文格式详解


Qt
Copyright © 2002-2019 k262电脑网 www.k262.cn 皖ICP备2020016292号
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!QQ:251442993 热门搜索 网站地图