当前位置:
k262电脑网 > 
网络知识 >  发布时间:2025-06-17 09:56 文章来源于网友投稿,仅供参考!
  
       
     
     
     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