excel|自动化:利用excel开源库自动生成文档,解决重复性操作

excel|自动化:利用excel开源库自动生成文档,解决重复性操作

文章图片

excel|自动化:利用excel开源库自动生成文档,解决重复性操作

文章图片

excel|自动化:利用excel开源库自动生成文档,解决重复性操作

文章图片

excel|自动化:利用excel开源库自动生成文档,解决重复性操作

文章图片

excel|自动化:利用excel开源库自动生成文档,解决重复性操作

不管是生活还是工作 , 我们经常会使用excel文档 , 如果仔细观察 , 就会发现其中会很多重复性的操作 。 因此 , 这就给我们提出这样的问题 , 怎样才能自动生成文档 , 解决重复性的操作 。
初步的解决方案就是代码层面上组合读写excel接口 , 从而实现自动生成文档的功能 。
如果自己实现读写excel文档库的话 , 那么将会很耗时 , 并且也不现实 。 所以通过网络搜索寻找到基于QT来读写excel文档的开源库QXlsx 。
本文将介绍开源库QXlsx的简单使用和效果 , 基于这些操作的组合 , 就可以实现自动生成文档功能 , 并且能够重复使用 。
一、简单的例子1、 网上下载QXlsx开源库后 , 需要将QXlsx加载到Qt Creator工具 , 直接参考开源库代码中的HowToSetProject.md文件即可
2、调用开源库接口write  通过两种方式展示写入数据 , 一种是通过单元格名称写入字符串 , 比如A1、B1等 , 另一种方式是通过行列方式写入字符串 。 最后调用开源库接口saveAs生成excel文档 。

3、编译运行程序成功之后 , 打开生成的excel文档 , 可以看到内容如下图所示

二、自动换行有时候写入单元格的内容比较长 , 超过了单元格的展示范围 , 而我们又不想扩大单元格的宽度 , 怎么办呢 , 可以通过设置自动换行的方式 , 让写入单元格的内容自动适配当前的单元格 。
1、定义QXlsx::Format类型的格式变量 , 然后初始化格式 , 携带配置好的格式写入到单元格

2、最后生成的excel文档的内容效果如下图所示 , 可以看出长字符串自动换行以便显示所有数据内容 。

三、多个表单当需要多个表单来保存不同的数据的时候 , 这就涉及到创建多个表单的问题 。 下面将用创建两个表单的例子来作为简单的入门知识点 。
1、调用接口addSheet来添加表单 , 并且往表单中写入数据

2、最后生成的excel文档中 , 分别创建了两个表单 , 分别为first year 和second year 。

第一个表单first year

第二个表单second  year
四、读取excel文档写入数据到excel文档之后 , 肯定有需求场景需要读取excel文档数据来展示 , 所以 , 接下来将说明读取excel文档的所有数据的方法 。
1、先读取excel文档 , 然后获取每一个表单 , 读取每一个表单中的单元格内容

2、最后输出的打印信息如下所示  将文档中所有的单元格数据打印出来 。

五、总结从上面的例子中 , 可以看出QXlsx::Document是控制整个excel文档的类 , 它可以控制表单的宽高 , 控制表单等功能 , 而QXlsx::Format则是控制单元格格式的类 , 它可以设置字体、字体大小 , 对齐方式等 。
【excel|自动化:利用excel开源库自动生成文档,解决重复性操作】QXlsx的局限性 , 它不支持多线程 , 当表单比较多的时候 , 加载表单会很耗时 。 所以 , 它不适用大量读写操作的场景 。 对于大量读写操作的场景 , 可以考虑使用json进行保存 , 当需要excel数据的时候 , 再将json中的数据转化到excel文档 。


    推荐阅读