時間: 2020-12-05
解決方案:
編譯 Qt xlsx的源碼。然后,作如下操作:
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| window 下 (網友的, 我的Activate Perl 未裝成功, 無法編譯 Qt Xlsx src.pro) ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
構建完畢之后,后生產如下幾個文件:
.....\build-qtxlsx-Desktop_Qt_5_7_0_MSVC2013_64bit-Debug
include
lib
mkspecs
src
.qmake.cache
接下來就需要將這些文件拷貝到指定的位置,以便Qt可以正常的調用,
1、首先拷貝include目錄下的QtXlsx目錄到Qt的安裝目錄下,比如我的拷貝到:
D:\Qt\Qt5.7.0\5.7\msvc2013_64\include
2、接下來拷貝lib文件夾下 Qt5Xlsxd.lib Qt5Xlsx.lib Qt5Xlsx.prl Qt5Xlsxd.prl 4個文件到你的Qt的lib下:
D:\Qt\Qt5.7.0\5.7\msvc2013_64\lib
3、拷貝lib文件夾下的 Qt5Xlsx.dll Qt5Xlsxd.dll 庫文件到你的Qt庫路徑下
D:\Qt\Qt5.7.0\5.7\msvc2013_64\bin
4、拷貝 mkspecs\modules 文件夾下的qt_lib_xlsx.pri到你的Qt模塊下
D:\Qt\Qt5.7.0\5.7\msvc2013_64\mkspecs\modules
接下來就可以使用Qt進行excel的操作了,只是需要注意,
使用的時候需要包含頭文件
#include <QtXlsx>
在你的 qmake .pro 需要添加:
QT += xlsx
完畢之后,最好先qmake 在構建工程,否則會提示連接不到庫。
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| linux 下 (麒麟4.0) |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
構建完畢之后,后生產如下幾個文件:
接下來就需要將這些文件拷貝到指定的位置,以便Qt可以正常的調用。
1、首先拷貝include目錄下的QtXlsx目錄到Qt的安裝目錄下,比如我的拷貝到:
/usr/include/qt5
2、拷貝lib文件夾下文件和文件夾, 對應到你的Qt模塊路徑下:(!!! 我的目錄是lib64 不是 lib!!!)
2.1 拷貝.../lib/cmake 文件夾下 Qt5Xlsx 到下面的路徑
/usr/lib64/cmake
2.2 拷貝.../lib/pkgconfig文件夾下 Qt5Xlsx.pc 到下面的路徑
/usr/lib64/pkgconfig
2.3 拷貝 .../lib下的 所有 .so、.so...、.la、.prl 到下面的路徑
/usr/lib64
3、拷貝 mkspecs\modules 文件夾下的qt_lib_xlsx.pri到你的Qt模塊下。(!!!! 上面說的linux和windows的目錄結構不一致, linux缺少的目錄結構,在這里可以找到!!!!)
/usr/lib64/qt5/mkspecs/modules
我的麒麟4.0環境, /usr/a_zhm/StudyCode/Excel/build-qtxlsx-Desktop-Debug/mkspecs下有兩個文件夾modules 和 modules-inst。
modules下有 qt_lib_xlsx.pri ;modules-inst下有 qt_lib_xlsx.pri 和 qt_lib_xlsx_private.pri 。
我的/usr/lib64/qt5/mkspecs/modules這個目錄下已有的文件 xxxx_pri 和 xxxx_private.pri 是成對的。 因此,我從拷貝了生成目錄. ../mkspecs/modules-inst 下的兩個文件。
4. src 目錄是 Qt Creator 構建工程時生成的目錄, 不需要拷貝。
接下來就可以使用Qt進行excel的操作了,只是需要
finish...
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| linux 下 (麒麟4.0) Qt環境目錄結構 補充說明 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
指定位置:構建套件Kit中選擇的Qt Version 對應的安裝目錄, Qt Creator 里 截圖如下:
這里再補充說明一些東西, 我是個linux新手, Qt5.6.0 in PATH (system) 對應的qmake-qt5文件, 在目錄 /usr/bin/qmake-qt5。
這個目錄跟我們windows里看到的 ../Qt5.6.0/bin/..的不同。 windows下, lib 、 include、bin...都集中在不同編譯器目錄下,例如: Qt\Qt5.9.8\5.9.8\msvc2015_64。
而linux下, 是分散在 /usr/lib、 /usr/include、 /usr/bin .... 里。 下面截圖對比如下:(對比可以看出, linux下 缺少了很多目錄, 比如:doc、mkspecs、phrasebooks、plugins....不着急,下面我會說)
windows: linux:
然后,自己在linux里安裝的 Qt, 目錄跟windows下是一樣的,截圖如下。 至於上面那種(/usr/...),我就不懂環境是如何搭建的了(囧....求告知...thanks very much)。
.....這種類型的目錄,后續處理跟windows一致。
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| linux 下 (麒麟4.0) 打完收工 perfect |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
關於 Qt xlsx 來 各種方式讀寫 excel , 閱讀 Qt xlsx 源碼自帶的 example 程序 就足夠足夠了。