一、從源碼下載。
二、編譯安裝QXlsx庫
2.1安裝Perl
QtXlsx是一個可以讀寫excel文件的庫,只要支持Qt5,其不需要安裝有微軟的excel即可在任何平台上使用。此庫可以完成以下功能:創建.xlsx文件,從現有的.xlsx文件中讀取數據,編輯已經存在的xlsx文件.
從源碼的README文件我們可以知道,此庫在編譯安裝的時候需要Perl的支持。可從草莓Perld的網址(
http://strawberryperl.co)下載所需的Perl安裝包,下載完安裝包后即需要首先完成安裝Perl。
2.2編譯安裝QtXlsx
在安裝過Perl后,打開Qt的cmd

然后再cmd中切換到QtXlsx的源碼所在的路徑。然后使用如下命令對此源碼進行編譯安裝
qmake mingw32-make mingw32-make install
一般使用上述安裝命令安裝后是不會出現任何問題的,但是也不排除有像本人一樣的Coder,
下載完代碼后在QtCreator中先構建了某個例子以嘗鮮,是不會成功的,經過我的實際測試,此步驟會導致在后續編譯安裝庫的時候導致debug庫編譯安裝失敗,但是就是這一步會導致我們在上述安裝過程中出現如下錯誤:
xlsxzipreader.cpp: In member function ‘void QXlsx::ZipReader::init()’: xlsxzipreader.cpp:51:66: error: conversion from ‘QVector<QZipReader::FileInfo>’ to non-scalar type ‘QList<QZipReader::FileInfo>’ requested QList<QZipReader::FileInfo> allFiles = m_reader->fileInfoList();
解決辦法:
這里直接把xlsxzipreader.cpp中添加如下頭文件,並將此文件51行出現的QList替換為QVector即可。然后繼續在Qt的cmd中繼續上述安裝命令進行編譯安裝。
#include <QVector>
#可加在xlsxzipreader.h中
注意:在下載完代碼后,直接運行某個demo后,有可能會導致在編譯安裝的時候debug版本編譯失敗,此時可以將源碼再解壓一份按照上述過程再操作一次即可同時生成debug和release的庫。
三、QXlsx例子編譯
在上述步驟完成后即可再次打開QtXlsx的源碼,嘗試編譯其example中的demo咯。此處為了簡單起見,我將hello這個demo分離出來進行了單獨編譯,並嘗試運行。
hello.pro
TARGET = hello QT+=xlsx CONFIG += console CONFIG -= app_bundle SOURCES += main.cpp HEADERS +=
hello的main.cpp
1 #include <QtCore> 2 #include "xlsxdocument.h" 3 4 int main() 5 { 6 //![0] 7 QXlsx::Document xlsx; 8 //![0] 9 10 //![1] 11 xlsx.write("A1", "Hello Qt!"); 12 xlsx.write("A2", 12345); 13 xlsx.write("A3", "=44+33"); 14 xlsx.write("A4", true); 15 xlsx.write("A5", "http://qt-project.org"); 16 xlsx.write("A6", QDate(2013, 12, 27)); 17 xlsx.write("A7", QTime(6, 30)); 18 //![1] 19 20 //![2] 21 xlsx.save(); 22 //![2] 23 24 return 0; 25 }
hello工程僅僅需要這兩個文件即可。編譯完成后即可發現,在其Relase目錄中有Book1.xlsx這個excel表格生成,並且其中內容與main.cpp的一致

以后在使用Qtxlsx庫的過程中可直接在其源碼去查找相應的例子
參考博客:
2018-08-09