日常开发软件可能会遇到这类小众需求,导出数据到 、 以及 文件,如果你使用 编程语言,那么可以选择的方案不是很多,恰好最近刚好有这部分需求,整理下这段时间踩过的坑,方便后人
PS: 目前采用一种通用的、跨平台的方案来代替下面的方便,可能会更好一些,详细可以看下面这篇文章
C++/Qt workd 跨平台、通用
读写 Word
日常开发的软件使用最多的应该是导出数据到 文档中,目前可以用的方案有这几种
- 将该文档另存为 文档
- 读取文档内容进行变量替换
- 保存替换后的内容,写入文件
这种方式难点在于 格式拼接,任何缺失字段都会导致导出失败,适合小众需求下导出
图片问题其实可以手动进行转化,文档导出成功后手动拷贝内容到新的文档,这样图片就真正插入到文档中,文档发送给别人也不会丢失图片了
还有一个坑就是:如果你使用 打开导出的文档,默认显示的是 视图,需要手动进行调整
某些电脑分辨率变化也会导致生成的文档中字体等产生变化
第三方开源库
可以使用的第三方库几乎没有, 络上找到的有这么几个
- OpenOffice: 兼容性差,集成调用难度大
- LibOffice: 太庞大,不容易集成
- DuckX: 太小众,只能简单的使用
- docx:小众库
DuckX库
docx库
在读写 这部分, 基本没有可以使用的第三方库,不像其他语言、、有很多可以选择,这个痛苦也只有 程序员能够理解了吧
所以怎么选择还是看自己项目需求吧,没有十全十美的方案
上面说了这么多,都是导出生成 ,那么下面来看看有那些方式可以读取显示 内容
这种需求应该不会很多,而且显示难度更大一些
使用 组件方式,即采用 框架显示 文档内容,本质上就是在我们编写的 界面上嵌入 的软件,这种方式其实和直接打开 查看没有啥区别,效果、性能上不如直接打开更好一些
目前一般都会采用折中方案,把 转为 进行预览加载显示,我们知道 渲染库比较多,生态相对来说要好一些,在选择上就更广泛些,如何使用后面部分有专门介绍 章节
读写 Excel
目前有一个支持比较好的第三方库可以使用,整体使用基本可以满足日常使用
QXlsx
其中 和 属于功能强大但是很难编译的那种,需要有扎实的三方库编译能力,否则面对 个依赖库会无从下手
不过可喜的是 上有两个开源库可以供选择
qpdf 库
这个库其实封装了 库,使用 来执行 进而加载文件
代码结构以及使用 Demo
可正常访问的仓库地址:https://github.com/PDFium/PDFium
相关类可以看这个文档:https://developers.foxit.com/resources/pdf-sdk/c_api_reference_pdfium/modules.html
总结
以上就是项目中常用的文档处理方法总结,当然了肯定也还有其它方案可以实现,毕竟条条大路通罗马,如果你还要不错的方案和建议欢迎留言
PS: 以上方案和对应的源码编译、使用例子会统一上传到 对应的仓库,方便后人使用,有需要的可以关注下
取之互联 、回 互联
推荐阅读
- Qt Creator 源码学习笔记01,初识QTC
- Qt Creator 源码学习笔记02,认识框架结构结构
- Qt Creator 源码学习笔记03,大型项目如何管理工程
- Qt Creator 源码学习笔记04,多插件实现原理分析
- Qt Creator 源码学习笔记 05,菜单栏是怎么实现插件化的li>
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!