不管是生活还是工作,我们经常会使用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。
四、读取excel文档
写入数据到excel文档之后,肯定有需求场景需要读取excel文档数据来展示,所以,接下来将说明读取excel文档的所有数据的方法。
1、先读取excel文档,然后获取每一个表单,读取每一个表单中的单元格内容
2、最后输出的打印信息如下所示, 将文档中所有的单元格数据打印出来。
五、总结
从上面的例子中,可以看出QXlsx::Document是控制整个excel文档的类,它可以控制表单的宽高,控制表单等功能,而QXlsx::Format则是控制单元格格式的类,它可以设置字体、字体大小,对齐方式等。
QXlsx的局限性,它不支持多线程,当表单比较多的时候,加载表单会很耗时。所以,它不适用大量读写操作的场景。对于大量读写操作的场景,可以考虑使用json进行保存,当需要excel数据的时候,再将json中的数据转化到excel文档。
领取专属 10元无门槛券
私享最新 技术干货