千家信息网

Qt怎么实现数据导出到xls

发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,本篇内容介绍了"Qt怎么实现数据导出到xls"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、前言导
千家信息网最后更新 2025年01月31日Qt怎么实现数据导出到xls

本篇内容介绍了"Qt怎么实现数据导出到xls"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一、前言

导入导出数据到csv由于语法简单,适用场景有限,于是乎还是必须再造一个轮子导出数据到xls,在经历过数十年的项目实战经验中不断调整和优化。尤其记得当初第一个版本v0.01大概在2011年左右完成的,当时是公司项目运行在嵌入式板子上,需要导出警情记录,拷贝到电脑上打印,由于嵌入式根本没有也不可能去安装excel等软件,硬着头皮去研究了xml格式的xls文件,按照那个规则组合成简单的导出数据,这个思路想法理论上比QtXlsx要早,我也是后面大概在2015年后才发现有QtXlsx这个开源的轮子,而且思路不谋而合,都是采用xml格式的数据。QtXlsx主打各种格式数据单元格做成一个完成的通用的组件等,而我这个轮子更倾向于具体应用场景,直接面对傻瓜用户,传入表名、字段集合几个简单的信息(现在直接放到了结构体数据),就能直接刷刷的导出数据,甚至简单到现在支持直接传入QTableWidget、QTableView控件就行,不要太简单爽歪歪。

结构体支持的参数:

  • 文件名称

  • 表名

  • 主标题

  • 副标题

  • 子标题1

  • 子标题2

  • 字段名称集合

  • 字段宽度集合

  • 内容集合

  • 行内容分隔符

  • 子内容分隔符

  • 边框宽度

  • 自动填数据类型 默认开启

  • 数据单元格样式 默认不开启 不开启可以节约大概30%的文件体积

  • 随机颜色

  • 随机颜色列索引集合

  • 校验列

  • 校验类型

  • 校验值

  • 检验颜色

二、功能特点

组件同时集成了导出数据到csv、xls、pdf和打印数据。

所有操作全部提供静态方法无需new,数据和属性等各种参数设置采用结构体数据,极为方便。

同时支持QTableView、QTableWidget、QStandardItemModel、QSqlTableModel等数据源。

提供静态方法直接传入QTableView、QTableWidget控件,自动识别列名、列宽和数据内容。

每组功能都提供单独的完整的示例,注释详细,非常适合各阶段Qter程序员。

原创导出数据机制,不依赖任何office组件或者操作系统等第三方库,支持嵌入式linux。

速度超快,9个字段10万行数据只需要2秒钟完成。

只需要四个步骤即可开始急速导出海量数据比如100W条记录到Excel。

同时提供直接写入数据接口和多线程写入数据接口,不卡主界面。

可设置标题、副标题、表名。

可设置导出数据的字段名、列名、列宽。

可设置末尾列自动拉伸填充,默认拉伸更美观。

可设置是否启用校验过滤数据,启用后符合规则的数据特殊颜色显示。

可指定校验的列、校验规则、校验值、校验值数据类型。

校验规则支持 精确等于==、大于>、大于等于>=、小于<、小于等于<=、不等于!=、包含contains。

校验值数据类型支持 整型int、浮点型float、双精度型double,默认文本字符串类型。

可设置随机背景颜色及需要随机背景色的列集合。

支持分组输出数据,比如按照设备分组输出数据,方便查看。

可设置csv分隔符、行内容分隔符、子内容分隔符。

可设置边框宽度、自动填数据类型,默认自动数据类型开启。

可设置是否开启数据单元格样式,默认不开启,不开启可以节约大概30%的文件体积。

可设置横向排版、纸张边距等,比如导出到pdf以及打印数据。

支持图文混排导出数据到pdf以及打印数据,自动分页。

灵活性超高,可自由更改源码设置对齐方式、文字颜色、背景颜色等。

支持任意excel表格软件,包括但不限于excel2003-2021、wps、openoffice等。

纯Qt编写,支持任意Qt版本+任意编译器+任意系统。

三、体验地址

体验地址:https://pan.baidu.com/s/1ZxG-oyUKe286LPMPxOrO2A 提取码:o05q 文件名:bin_dataout.zip

国内站点:https://gitee.com/feiyangqingyun

国际站点:https://github.com/feiyangqingyun

四、效果图

五、相关代码

QStringList frmDataOut2::getContent(){    QStringList content;    QString sql = QString("select * from MsgInfo limit %1").arg(100);    QSqlQuery query;    if (!query.exec(sql)) {        return content;    }    //循环遍历数据    while (query.next()) {        QStringList list;        for (int i = 0; i < column; i++) {            list << query.value(i).toString();        }        content << list.join(";");    }    return content;}void frmSimple::on_btnXls_clicked(){    //设置结构体数据    DataContent dataContent;    //填充内容    dataContent.content = getContent();    //设置列名列宽    dataContent.columnNames = columnNames;    dataContent.columnWidths = columnWidths;    //设置文件名    dataContent.fileName = "d:/0.xls";    //设置表名    dataContent.sheetName = "测试信息";    //调用静态函数保存    DataXls::saveXls(dataContent);    //打开刚才导出的文件    QUIHelper::openFile(dataContent.fileName, "导出测试信息");}

"Qt怎么实现数据导出到xls"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

数据 支持 内容 可设 文件 类型 颜色 分隔符 字段 标题 规则 信息 单元 同时 宽度 嵌入式 格式 组件 结构 背景 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 高防云服务器代理 海康isc平台装在什么服务器上 网络安全宣传开展情况工作汇报 宝德服务器硬盘灯不亮 服务器硬盘不显示容量 展厅软件开发外包 软件开发常用方法 联合国网络安全法 网络技术基础教程姚华 邯郸软件开发项目管理 软件开发合伙协议 乱斗堂3最新服务器多久开 数据库ip地址字段类型 济南地区浪潮服务器哪里有 银行项目一般来说用什么数据库 简述数据库应用的客户服务器模式 数据库清除文本框内容代码 武汉移动网络技术待遇 河北麟融网络技术有限公司 erp系统用什么样的服务器 dnd服务器作用 漫画说网络安全教学 图片以二进制存在数据库 四川互联网软件开发正规平台 网络安全工程专业在职研究生 邮箱服务器关闭还能接收吗 博思特打印机怎么导入数据库 数据库清除文本框内容代码 北辰软件开发有限公司 在网络安全防护中应承担哪些责任
0