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
posted @ 2018-08-09 15:40  spite  阅读(4458)  评论(0编辑  收藏  举报