Qt导出数据到excel

Qt导出数据到excel,方法有很多,Qt里也有自带的axcontainer模块中的#include<QAxObject>类可以导出数据到excel,但是这种方法依赖于你电脑上打开excel的软件,可能换一台电脑就不能正常运行,使用库函数起来也比较麻烦而且导出数据的速度贼慢(亲身体验过),这种方式还是不建议用的。
推荐使用第三方库导出数据,这里我用的是 使用 xlsx库操作excel表格
下载QtXlsx类,这是下载地址。
关于这个库的使用方法有两种使用方法:
1.使用Xlsx作为Qt5的附加模块,(注意:此步骤需要下载安装Perl
2. 直接使用源代码。

1.使用Xlsx作为Qt5的附加模块

参考链接

1.首先,需要下载安装Perl5,这是地址。

2.根据你Qt版本下载对应版本,现在大部分都用64位的了。(要匹配),ActivePerl-5.22.1.2201-MSWin32-x64-299574.msi,下载好了之后就一直默认安装即可。安装好了在打开你的Qt(笔者使用的是Qt5.6.0 msvc版本)和下载的上面下载的QtXlsx代码。

3.开始编译QtXlsx代码,编译成功后,在你编译的目录下回生成lib文件和需要包含的文件(include)还有一个模块pri文件,这里有我直接编译生成好的文件,
链接:https://pan.baidu.com/s/18K_OAVVUsmTwAkSi3vuI0w
提取码:9w4f


4.添加这些文件到你的Qt的库中
(1) 拷贝 include文件下的文件到你的Qt安装目录D:\Qt\Qt5.7.0\5.7\mingw53_32\include (直接copy,无需修改任何内容)

(2)拷贝lib文件夹下Qt5Xlsxd.lib Qt5Xlsx.lib Qt5Xlsx.prl Qt5Xlsxd.prl 4个文件到你的Qt的lib下 D:\Qt\Qt5.7.0\5.7\mingw53_32\lib

(3)拷贝lib文件夹下的Qt5Xlsx.dll Qt5Xlsxd.dll 库文件到你的Qt库路径下 D:\Qt\Qt5.7.0\5.7\mingw53_32\bin

(4)拷贝 mkspecs\modules 文件夹下的qt_lib_xlsx.pri到你的Qt模块下
D:\Qt\Qt5.7.0\5.7\mingw53_32\mkspecs\modules

5.qt使用qxlsx:

pro文件里面加上 QT += xlsx

下面是示例代码:

    #include <QtXlsx>int main(){QXlsx::Document xlsx;xlsx.write("A1", "Hello Qt!");xlsx.saveAs("Test.xlsx");return 0;}

2.直接使用QtXlsx源代码(推荐)

该软件包包含一个qtxlsx.pri文件,它允许您将组件集成到使用qmake进行构建步骤的应用程序中。

1.下载源代码。

2.将下载目录底下的src目录下的xlsx目录全部拷贝放在你要添加的项目目录(和pro文件同一级)中。
3.将以下行添加到你的项目中的pro文件中:

INCLUDEPATH += $$PWD xlsx
include(xlsx/qtxlsx.pri)

4.保存后,然后就可以在你的项目工程中看到多了一个qtxlsx的目录。

5.使用(应用实例)

#include"xlsxdocument.h"
#include "xlsxformat.h"
#include "xlsxcellrange.h"
#include "xlsxchart.h"QXlsx::Document xlsx;QXlsx::Format format1;/*设置该单元的样式*/format1.setFontColor(QColor(Qt::red));/*文字为红色*/format1.setPatternBackgroundColor(QColor(152,251,152));/*北京颜色*/format1.setFontSize(15);/*设置字体大小*/format1.setHorizontalAlignment(QXlsx::Format::AlignHCenter);/*横向居中*/format1.setBorderStyle(QXlsx::Format::BorderDashDotDot);/*边框样式*/xlsx.write("A1", "Hello Qt!", format1);/*写入文字,应该刚才设置的样式*/xlsx.write(2, 1, 12345, format1);/*写入文字,应该刚才设置的样式*/QXlsx::Format format2;/*重新设置另一个单元的样式*/format2.setFontBold(true);/*设置加粗*/format2.setFontUnderline(QXlsx::Format::FontUnderlineDouble);/*下双划线*/format2.setFillPattern(QXlsx::Format::PatternLightUp);/*填充方式*/xlsx.write("A4", "=44+33", format2);/*写入文字,应该刚才设置的样式*/xlsx.write("C4", true, format2);if(!xlsx.selectSheet("ziv")){/*在当前打开的xlsx文件中,找一个名字为ziv的sheet*/xlsx.addSheet("ziv");//找不到的话就添加一个名为ziv的sheet}for (int i=10; i<20; ++i) {/*写入一串数字*/xlsx.write(i, 1, i*i*i);   //A10:A19xlsx.write(i, 2, i*i); //B10:B19xlsx.write(i, 3, i*i-1); //C10:C19}QXlsx::Chart *pieChart = xlsx.insertChart(3, 5, QSize(300, 300));/*在3行5列的位置插入一个图标*/pieChart->setChartType(QXlsx::Chart::CT_Pie);/*插入一个饼形图*/pieChart->addSeries(QXlsx::CellRange("A10:A19"));/*饼形图添加数据*/pieChart->addSeries(QXlsx::CellRange("B10:B19"));pieChart->addSeries(QXlsx::CellRange("C10:C19"));QXlsx::Chart *barChart = xlsx.insertChart(3, 13, QSize(300, 300));/*在3行13列的位置插入一个图标*/barChart->setChartType(QXlsx::Chart::CT_Bar);/*条形图*/barChart->addSeries(QXlsx::CellRange("A10:C19"));/*给条形图加入数据*/xlsx.saveAs("book1.xlsx");/*保存*/QXlsx::Document xlsx2("Book1.xlsx");/*复制book1到book2*/xlsx2.saveAs("Book2.xlsx");

Qt导出数据到excel相关推荐

  1. QT导出数据到Excel的方法

    一.系统库中自带的写入方法写入Excel 使用QAxObject,系统自带的参数. 使用方法参考:https://blog.csdn.net/cannon_qi/article/details/799 ...

  2. Qt导出数据到EXCEL的两种方式

    一.导出到csv格式,这种格式不用安装office QString DModel::exportDataToCSV(QString lx) {QString dtStr="d:/" ...

  3. Qt 表格导出数据为 excel html csv

    Qt 表格导出数据为 excel html csv 示例 使用WPS导出出错问题 参考: 从QTableView中导出数据到excel(一) qt QTableWidget&&QTab ...

  4. java导出为excel文件_java导出数据到excel文件

    有的时候,将一些有用的数据导出到excel是很有必要的.比如说,我现在在做一个学校的在线教学平台,有一个需求是:将学生成绩导出到excel文件中去. 那怎样实现用java导出数据到excel文件呢?? ...

  5. 百度指数常见php框架,怎么导出数据到excel表格-如何将百度指数数据导出到Excel表格...

    如何将百度指数数据导出到Excel表格 第一步:打开CAD.CAD命令行输入"Li"."选择对象"选需要提取坐标的多段线.回车. 第二步:将CAD文本框中的数据 ...

  6. arcengine遍历属性表_【程序之坑】小程序云开发导出数据到excel表

    本文解决了小程序云开发导出数据到excel的bug,并给出了分析的过程,同时简化了程序为一个云函数,一个本地函数,逻辑更简单.文章结尾给出了完整源代码 小程序云开发为没有服务器的小程序开发者提供了便利 ...

  7. python输出数据到excel-python如何导出数据到excel文件

    python导出数据到excel文件的方法: 1.调用Workbook()对象中的add_sheet()方法wb = xlwt.Workbook() ws = wb.add_sheet('A Test ...

  8. python输出数据到excel-Python从数据库导出数据到Excel

    #coding=utf-8 import pymysql import xlwt import importlib,sys importlib.reload(sys) # __author__ = ' ...

  9. (转)另一篇:VC导出数据到EXCEL

    另一篇:VC导出数据到EXCEL 2010-08-28 17:03:47|  分类: 默认分类 |  标签: |字号大中小 订阅 我们制作应用软件的时候,经常要把结果以报表的形式输出,当前使用较为广泛 ...

最新文章

  1. Windows 下面 redis 发布为服务的官方方法
  2. C语言实验——打印金字塔_JAVA
  3. js获取时间段内属于星期一的日期们
  4. jzoj4017-逃跑【0/1分数规划,线段树,dp】
  5. ASP.NET Core Web API
  6. Spring Cloud面试题
  7. leetcode - 967. 连续差相同的数字(集合、递归、动态规划)
  8. bzoj1596[Usaco2008 Jan]电话网络*
  9. Avalanche发布AvalancheGo v1.2.3版本
  10. HTML5项目笔记8:使用HTML5 的跨域通信机制进行数据同步
  11. Microsoft Office Mobile 2010 Beta 于 4 月 5 日过期
  12. 适配器模式之解释器模式
  13. 程序员面试金典--变位词排序
  14. 大数据Hadoop生态圈
  15. 【Python ASCII码转换】——制作ASCII码转换程序,并打包为应用程序
  16. 电子通信协议之CAN总线协议篇
  17. 极客空间-MySQL实战45天-第三天
  18. Vue3动态加载图片
  19. 免费高清录直播的软件分享
  20. android手机的语音助手在哪里设置,华为语音助手在哪设置 华为语音助手唤醒具体步骤...

热门文章

  1. PCIE Hot Plug 一般流程
  2. Windows 上帝模式「完全控制面板」的介绍和使用
  3. matlab 预定义变量和变量的管理
  4. 如何根据图片换算出中轴大小?
  5. 如何从RNN起步,一步一步通俗理解LSTM
  6. 深入理解时间和空间复杂度
  7. Thinging in Java读后总结
  8. 区块链 -- 以太坊的36个概念
  9. 平台经济中国案例研究平台经济、系统性思考结合个人陈述的分析(Platform-Economics)
  10. Java equal