QtXlsxWriter庫的安裝和使用


一、從源碼下載。
二、編譯安裝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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM