绪论

此部分代码仅供参考,存在一些问题,本打算把49张表所有数据存储在49个sheet页里,但是由于数据量太大,速度太慢,所以放弃掉了。改用导出txt的方式。

源码

myexcel.h

#ifndef MYEXCEL_H
#define MYEXCEL_H#include <QDate>class MyExcel
{public:MyExcel();// 导出excelvoid exportExcel(QString fileName, QDate start, QDate end);};#endif // MYEXCEL_H

myexcel.cpp

#include "myexcel.h"
#include "mydatabase.h"
#include "config.h"#include <QAxObject>
#include <QDir>
#include <QDebug>MyExcel::MyExcel()
{}void MyExcel::exportExcel(QString fileName, QDate start, QDate end)
{qDebug() << "开始:" + QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss");QAxObject *excel = new QAxObject("Excel.Application");excel->dynamicCall("SetVisible(bool)", true);excel->setProperty("Visible", false);QAxObject *workbooks = excel->querySubObject("WorkBooks");workbooks->dynamicCall("Add");QAxObject *workbook = excel->querySubObject("ActiveWorkBook");QAxObject *worksheets = workbook->querySubObject("Worksheets");/*********************************************************************************************************************************/QAxObject *worksheet = workbook->querySubObject("Worksheets(int)", 1);worksheet->setProperty("Name", Config().getTableName(1));QString zd_1 = Config().getSQLColumn(1);QStringList zdl_1 = zd_1.split(",");for (int var = 0; var < zdl_1.count(); var++) {QAxObject *range = worksheet->querySubObject("Cells(int,int)", 1, var + 1);// 此处写要插入的内容range->setProperty("Value", zdl_1.at(var));}QSqlQuery query = MyDatabase().getQuery(1, start, end);int columnNum = 2;while (query.next()) {for (int var = 0; var < zdl_1.count(); var++) {QAxObject *range = worksheet->querySubObject("Cells(int,int)", columnNum, var + 1);// 此处写要插入的内容range->setProperty("Value", query.value(var));}columnNum++;}qDebug() << "Total:" + QString("%1").arg(columnNum - 2);/*********************************************************************************************************************************/MyDatabase *myDatabase = new MyDatabase;for (int i = 2; i < 50; i++) {QAxObject *sheet = worksheets->querySubObject("Add()");sheet->setProperty("Name", Config().getTableName(i));QString zd = Config().getSQLColumn(i);QStringList zdl = zd.split(",");for (int var = 0; var < zdl.count(); var++) {QAxObject *range = sheet->querySubObject("Cells(int,int)", 1, var + 1);// 此处写要插入的内容range->setProperty("Value", zdl.at(var));}QSqlQuery newQuery = myDatabase->getQuery(i, start, end);columnNum = 2;while (newQuery.next()) {for (int var = 0; var < zdl.count(); var++) {QAxObject *range = worksheet->querySubObject("Cells(int,int)", columnNum, var + 1);// 此处写要插入的内容range->setProperty("Value", newQuery.value(var));}columnNum++;}qDebug() << "Total:" + QString("%1").arg(columnNum - 2);}delete myDatabase;/********************************************************************************************************************************/// 写入文件workbook->dynamicCall("SaveAs(const QString&)", QDir::toNativeSeparators(fileName));// 释放workbook->dynamicCall("Close()");//释放所有工作表worksheet->clear();//释放excelexcel->dynamicCall("Quit()");delete excel;qDebug() << "结束:" + QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss");}

(若有什么错误,请留言指正,3Q)

Qt:一键导出客户端(五)-- excel导出相关推荐

  1. Angular导出功能(excel导出功能、文件数据流导出功能、图片的下载导出功能)

    Angular导出功能(excel导出功能.文件数据流导出功能.图片的下载导出功能) 场景1:(直接返回网络地址进行导出的excel) 后台返回的是 : "http://192.168.0. ...

  2. java excel导出 模板_Java Excel 导出 模板

    上面导出PDF和EXCEL的问题是图片路径出错!!! 数据库中存存的图片路径是"../dishpic/722f464f-3883-42aa-901f-21706da9c582.png&quo ...

  3. php larver 导出e,laravel5 Excel导出

    1.安装:maatwebsite/excel的2.1.0版本,命令行:composer require "maatwebsite/excel:~2.1.0": 2.在config/ ...

  4. java的excel导出_java 实现excel 导出功能

    1 //导出数据2 //SELECT SUBSTRING(create_time,1,10) s,COUNT(*) FROM data_read WHERE data_id IN (SELECT da ...

  5. Vue 项目excel导出功能

    一.思路 前端主导(工作大量在前端) 二.新建文件夹及文件 新建src/vendor/export2Excel.js 示例代码:示例地址 /* eslint-disable */ import { s ...

  6. 开发指南专题十六:JEECG微云快速开发平台Excel导出

    开发指南专题十六:JEECG微云快速开发平台Excel导出 14.3.  Excel导出 导出工具类ExcelExportUtil 提供两个函数 //创建多个Sheet public static H ...

  7. vue之Excel导出和导入

    vue之Excel导出和导入 vue之Excel导出和导入 Excel导入 Excel导出 Excel多级表头导出 vue之Excel导出和导入 Excel导入 注意:多级表头的Excel导出排版出现 ...

  8. 使用建造者模式(Builder Pattern) 设计Excel导出场景,附源码

    目录 建造者模式(Builder Pattern)简单介绍: 常见Excel导出场景 常见Excel 导出编码过程-结合过程查看代码 本文中的Excel导出使用方式 使用建造者模式设计Excel 导出 ...

  9. openfeign调用excel导出接口

    1.常见的excel导出核心方式 excel导出在企业应用中比较常见的. 我们一般都是把接口的 header 的 "ContentType" 置为 "applicatio ...

  10. php导出复杂表头excel,php如何导出复杂列的excel?

    //前台处理 document.getElementById("a_export").οnclick=function(){ $("#LoadingPark") ...

最新文章

  1. 本地Yum生成数据库及常用命令
  2. rtsp连接断开_live555学习之RTSP连接建立以及请求消息处理过程
  3. 【Kotlin】函数类型 ( 函数类型 | 带参数名称的参数列表 | 可空函数类型 | 复杂函数类型 | 带接收者函数类型 | 函数类型别名 | 函数类型实例化 | 函数调用 )
  4. Java(五)异常处理,异常参数,自定义异常,嵌套异常
  5. 玩转POI、EasyExcel报表导入导出!
  6. 我们常常怕打扰别人,而忽略要打个电话问候对方,
  7. linux 用户与工作组
  8. Win10黑屏的时候显示时钟怎么设置
  9. 02-02 逐帧动画、多组动画案例 实现小人跑步效果
  10. 如何保证缓存一致性?
  11. 以太网服务器怎么改成无线网,win10 以太网显示无线wifi名称怎么改
  12. 数论——中国剩余定理
  13. 一键加速去不掉加锁的_vivo手机一键加速的时候,怎样可以不把当前的应用清除?...
  14. Springboot整合JavaMail通过阿里企业邮箱发验证码
  15. 2020 年值得关注的20个区块链项目,来看看今年该把目光放在哪?
  16. Linux大全——Linux系统学习资源合集
  17. 解析:366API如何解决微信扫描二维码无法下载APK 的问题
  18. 华为hybrid,pvid,lap
  19. ERROR: Could not find a version that satisfies the requirement beautifulsoup
  20. ubuntu 修改开机启动项默认值

热门文章

  1. 技术如何创造新商业 新零售技术天团首次揭秘
  2. JAVA重写父类方法
  3. 第五部分 勇敢的新世界
  4. Mendeley插入文献后怎么清除文献域代码?方法之一
  5. 服务器数据中了locked勒索病毒,有关locked勒索病毒的介绍与预防建议
  6. ffmpeg rtmp音视频推流实现
  7. C语言求1000以内的所有质数
  8. 如何制作APP下载二维码?
  9. RichView TRVStyle ParaStyles
  10. 【视频】圆石景琦:区块链媒体洗牌,和谁继续下半场?