当前位置: 首页 > article >正文

QT 数据导入导出:Excel、PDF导出及打印功能

qt 数据导入导出导出excel的pdf打印等因为是软件产品。最近在重构公司产品的数据导出模块发现很多新手开发者对Qt的数据输出方案总有些摸不着头脑。今天咱们就撸起袖子用最接地气的方式聊聊Qt里那些实用的数据导出姿势。准备好了吗直接上硬菜先说最常被问到的Excel导出。虽然Qt没内置Excel支持但Windows平台有个隐藏福利——QAxObject。别被这个奇怪的名字吓到其实就是用COM接口操作Office全家桶。上代码QAxObject* excel new QAxObject(Excel.Application); excel-dynamicCall(SetVisible(bool), false); // 默默干活不弹窗 QAxObject* workbooks excel-querySubObject(WorkBooks); workbooks-dynamicCall(Add); QAxObject* workbook excel-querySubObject(ActiveWorkBook); QAxObject* worksheet workbook-querySubObject(Worksheets(int), 1); // 填充表头 QAxObject* cell worksheet-querySubObject(Cells(int,int), 1, 1); cell-dynamicCall(SetValue(const QString), 设备编号); // 填数据时建议批量操作提升10倍速度不是梦 QAxObject* range worksheet-querySubObject(Range(const QString), A2:D100); QListQListQVariant dataBlock; for(auto device : deviceList) { dataBlock QListQVariant{device.id, device.name, ...}; } range-dynamicCall(SetValue(const QVariant), QVariant(dataBlock)); workbook-dynamicCall(SaveAs(const QString), D:/export.xlsx); workbook-dynamicCall(Close()); excel-dynamicCall(Quit());这段代码有几个坑得注意动态调用失败不报错建议用QAxBase::generateDocumentation检查可用方法、Excel进程可能残留任务管理器记得检查、Linux/macOS直接不兼容。所以真实项目建议用QXlsx这类跨平台库这里只是展示原理。转战PDF导出就舒服多了Qt原生支持杠杠的。核心思路是把内容画到QPrinter上QPrinter printer(QPrinter::HighResolution); printer.setOutputFormat(QPrinter::PdfFormat); printer.setOutputFileName(report.pdf); QPainter painter; if(!painter.begin(printer)) { qWarning() PDF初始化失败; return; } // 先画个标题 QFont titleFont(微软雅黑, 18); painter.setFont(titleFont); painter.drawText(100, 100, 设备检测报告); // 画表格数据建议用QTextDocument更省事 int yPos 150; for(int row0; rowmodel-rowCount(); row){ painter.drawText(100, yPos, model-data(model-index(row,0)).toString()); painter.drawText(300, yPos, model-data(model-index(row,1)).toString()); yPos 30; // 分页处理 if(yPos printer.pageRect().height()-50){ printer.newPage(); yPos 50; } } painter.end();这里有个隐藏技巧QPrinter的坐标系原点在页面左上角单位是1/72英寸。建议先用printer.pageRect()获取实际绘制区域避免内容被裁剪。遇到复杂表格建议上QTextDocument它能自动处理分页和样式。qt 数据导入导出导出excel的pdf打印等因为是软件产品。打印功能其实是PDF导出的亲兄弟代码相似度90%QPrintDialog dialog(printer, this); if(dialog.exec() QDialog::Accepted){ QPainter painter; if(painter.begin(printer)){ // 绘制逻辑和PDF导出完全一致 renderReport(painter); painter.end(); } }不过实际使用中要注意物理打印机的奇葩特性有的不支持自定义纸张尺寸、有的边距超大。建议在打印前用printer.getPageLayout()获取实际可用区域动态调整布局。踩过这些坑之后我总结出三个保命原则批量操作Excel避免频繁COM调用、PDF/打印共用渲染逻辑、所有输出功能都要加进度提示QProgressDialog你值得拥有。最后放个绝招——用QStandardItemModel作为数据中心所有导出模块都从这一个model取数据维护起来真香代码写多了你会发现Qt这套图形输出体系就像乐高积木掌握了painter和model这两个核心组件各种输出需求都能见招拆招。下次遇到导出需求别慌先泡杯咖啡打开QtAssistant剩下的都是搭积木的快乐时光了。

相关文章:

QT 数据导入导出:Excel、PDF导出及打印功能

qt 数据导入导出,导出excel,的pdf,打印等,因为是软件产品,。最近在重构公司产品的数据导出模块,发现很多新手开发者对Qt的数据输出方案总有些摸不着头脑。今天咱们就撸起袖子,用最接地气的方式…...

蓝桥杯web常用数组方法

| filter() | 筛选符合条件的元素,返回新数组 | 数据筛选(如找大于10的数、筛选符合条件的商品) | javascript // 场景:筛选数组中大于10的数字 const arr [5,12,8,15]; const res arr.filter(item > item > 10); console…...

LongCat-Image-Editn效果实测:支持透明PNG输入,编辑后Alpha通道完整保留

LongCat-Image-Editn效果实测:支持透明PNG输入,编辑后Alpha通道完整保留 1. 模型能力概览 LongCat-Image-Editn是美团LongCat团队推出的文本驱动图像编辑模型,这个版本最大的亮点在于对透明PNG图像的完美支持。相比普通图像编辑工具&#x…...

Ostrakon-VL-8B一文详解:Qwen3-VL-8B基座模型在零售领域的领域适配方法

Ostrakon-VL-8B一文详解:Qwen3-VL-8B基座模型在零售领域的领域适配方法 如果你在零售行业工作,或者对AI在商业场景的应用感兴趣,那么今天要聊的这个模型可能会让你眼前一亮。想象一下,一个AI系统不仅能看懂货架上的商品&#xff…...

AutoGLM-Phone-9B小白友好部署:详解脚本启动与Jupyter验证步骤

AutoGLM-Phone-9B小白友好部署:详解脚本启动与Jupyter验证步骤 想体验一个能看懂图片、听懂语音、还能和你聊天的AI助手,但又担心自己的电脑配置不够?今天,我们就来聊聊一个专为“轻装上阵”设计的AI模型——AutoGLM-Phone-9B。它…...

AIGlasses OS Pro在AE制作片段视频中的应用:智能素材分类与管理

AIGlasses OS Pro在AE制作片段视频中的应用:智能素材分类与管理 如果你经常用After Effects做视频,肯定遇到过这样的烦恼:电脑里存了几百个视频片段、图片素材、特效元素,每次想找个合适的素材,都得花半天时间翻文件夹…...

Z-Image-Turbo应用案例:生成节日贺图、产品海报,效果展示

Z-Image-Turbo应用案例:生成节日贺图、产品海报,效果展示 1. 引言:当创意遇上效率 你有没有遇到过这样的场景?节日临近,需要一张精美的贺图发给客户或朋友,但找设计师来不及,自己又不会做图。…...

DeepSeek-OCR 2在嵌入式Linux系统中的优化部署

DeepSeek-OCR 2在嵌入式Linux系统中的优化部署 1. 引言 嵌入式设备上的OCR应用一直是个头疼的问题。传统的OCR方案要么精度不够,要么资源占用太大,在树莓派、Jetson Nano这类设备上跑起来特别吃力。最近DeepSeek-OCR 2开源了,这个模型在精度…...

20Hz低频数字载波在AM混合传输中的工程应用

1. 项目概述2021年全国大学生电子设计竞赛山东省赛区E题“数字-模拟信号混合传输收发机”,是一道典型的高频通信系统综合设计题目。其核心挑战不在于单一模块的实现,而在于如何在严格的物理约束下完成多域信号的协同处理:信道带宽≤25kHz&…...

基于ESP32-C3的高精度网络时钟设计与实现

1. 项目概述互联网时钟是嵌入式系统中兼具实用性与教学价值的经典入门项目。本设计以ESP32-C3-12F为核心控制器,构建一个具备网络授时、本地实时时钟保持、高亮度数码管显示及基础人机交互能力的独立时钟终端。区别于传统单片机RTC方案,本项目充分利用ES…...

打工人厕所摸鱼神器✨ 带薪拉屎也能清完游戏日常!

谁懂啊家人们😭 上班不敢开游戏,下班回家又不想把时间浪费在收菜、清体力、做日常这些繁琐操作上! 直到我发现了UU远程这个宝藏!直接化身「厕所战神」,带薪如厕的时间就能把游戏琐事全搞定✅以前总觉得: “…...

111 OCR文字识别技术实战

OCR文字识别技术实战 本文深入剖析OCR文字识别技术在企业级应用中的完整实现方案,从服务选型、图片预处理、API调用到识别准确率优化,结合实际业务场景提供可落地的技术方案。 1 OCR服务选型 为什么需要OCR技术? 在企业级应用中,大量的业务数据以图片、PDF等非结构化形式存在…...

手把手教你用Qwen3-VL-8B:上传图片提问,小白也能玩转AI识图

手把手教你用Qwen3-VL-8B:上传图片提问,小白也能玩转AI识图 1. 工具介绍:你的私人AI识图助手 Qwen3-VL-8B是一款基于阿里通义千问多模态大模型的本地化工具,它能像人类一样"看懂"图片并回答相关问题。想象一下&#x…...

ComfyUI+ControlNet实战:用DWpose精准控制AI绘画人物姿势(附完整工作流)

ComfyUIControlNet实战:用DWpose精准控制AI绘画人物姿势(附完整工作流) 在AI绘画领域,精准控制人物姿势一直是创作者面临的核心挑战。传统方法往往依赖大量提示词描述或反复试错,而ComfyUI与ControlNet的结合&#xff…...

泰山派3M-RK3576开发板部署YOLOv8目标检测模型实战指南

泰山派3M-RK3576开发板部署YOLOv8目标检测模型实战指南 最近有不少朋友在问,怎么把现在很火的YOLOv8目标检测模型,部署到泰山派3M-RK3576这块开发板上跑起来。确实,在嵌入式设备上跑AI模型,尤其是目标检测,是很多AIoT项…...

手把手教程:用mPLUG-Owl3-2B快速搭建你的专属图片聊天机器人

手把手教程:用mPLUG-Owl3-2B快速搭建你的专属图片聊天机器人 想不想拥有一个能看懂图片、还能跟你聊天的AI助手?比如你拍一张风景照,它能告诉你这是什么地方;或者上传一张产品图,它能帮你分析设计亮点。今天&#xff…...

基于ChatTTS在线的AI辅助开发实战:从语音合成到集成部署

最近在做一个需要语音播报功能的小项目,之前用过一些传统的TTS(文本转语音)服务,体验总是不太理想。要么是延迟太高,用户点了播放要等好几秒;要么是合成的语音听起来很机械,没有感情&#xff1b…...

Z-Image-Turbo-辉夜巫女企业级应用:低成本AI绘画方案助力IP视觉延展

Z-Image-Turbo-辉夜巫女企业级应用:低成本AI绘画方案助力IP视觉延展 1. 项目概述 Z-Image-Turbo-辉夜巫女是一款基于Xinference部署的文生图模型服务,专门用于生成具有辉夜巫女风格的图像。该模型采用Lora技术对基础模型进行微调,能够快速生…...

微信聊天记录全生命周期管理实战指南:从数据提取到价值挖掘的完整解决方案

微信聊天记录全生命周期管理实战指南:从数据提取到价值挖掘的完整解决方案 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHu…...

用LinkBoy玩转Arduino流水灯:8个LED的炫酷效果(附完整电路图)

用LinkBoy玩转Arduino流水灯:8个LED的炫酷效果(附完整电路图) 当你第一次看到一排LED灯像水流一样依次点亮又熄灭,会不会觉得既神奇又有趣?这就是经典的流水灯效果,也是许多Arduino初学者入门电子制作的第一…...

NLP-StructBERT与图数据库Neo4j结合:构建知识图谱语义检索系统

NLP-StructBERT与图数据库Neo4j结合:构建知识图谱语义检索系统 想象一下,你面对一个庞大的知识库,里面有成千上万的实体和它们之间错综复杂的关系。你想问:“苹果公司的创始人是谁?”或者“治疗高血压的常用药物有哪些…...

造相-Z-Image-Turbo高可用架构:设计多节点负载均衡与故障转移方案

造相-Z-Image-Turbo高可用架构:设计多节点负载均衡与故障转移方案 当你的AI图像生成服务突然因为流量激增而卡顿,或者某个计算节点意外宕机导致用户排队等待时,那种感觉就像精心准备的晚宴突然停了电。对于“造相-Z-Image-Turbo”这类深度依…...

C语言集成MogFace-large推理引擎:高性能边缘计算方案

C语言集成MogFace-large推理引擎:高性能边缘计算方案 如果你是一名C/C开发者,正在为嵌入式设备、工业视觉或者自动驾驶系统寻找一个既准又快的人脸检测方案,那么这篇文章就是为你准备的。我们这次要聊的,是如何把MogFace-large这…...

机器人建模(URDF)与仿真配置

在我们搭建好了开发环境之后,下一步就是赋予机器人“身体”。URDF 就是这个身体的蓝图,而仿真配置则是让这个身体在虚拟世界中“活过来”的关键一步。 📝 第一部分:URDF——机器人的“骨骼”与“皮肤” URDF 的核心是描述机器人的…...

ANIMATEDIFF PROGPU算力优化:BF16推理+VAE Tiling技术深度解析

ANIMATEDIFF PROGPU算力优化:BF16推理VAE Tiling技术深度解析 1. 为什么你的文生视频总卡在“显存不足”? 你是不是也遇到过这样的情况:精心写好提示词,点击生成,进度条刚走到30%,控制台突然弹出一串红色…...

Nullnull

Null...

比迪丽AI绘画在微信小程序开发中的应用:个性化头像生成

比迪丽AI绘画在微信小程序开发中的应用:个性化头像生成 微信小程序与AI绘画的完美结合,让每个用户都能拥有独一无二的头像 1. 为什么需要个性化头像生成 你有没有遇到过这样的困扰:想换微信头像,但翻遍相册也找不到满意的图片&am…...

大龙虾OpenClaw的token不够吃了?用免费的 APIKey 续命

大龙虾OpenClaw的token不够吃了?用免费的 APIKey 续命 前言 最近一直在玩 OpenClaw 的朋友应该都有同感:大龙虾跑得越欢,Token 烧得越快,刚部署没多久就提示额度不足,想继续用就得充值,对个人开发者太不友…...

douyin-downloader:智能视频资源管理工具的全方位应用指南

douyin-downloader:智能视频资源管理工具的全方位应用指南 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 在信息爆炸的数字时代,视频内容已成为知识传递和创作表达的重要载体。无论是…...

项目博客:山东大学软件学院项目实训-创新实训

项目实训...