delphi7无法编译已经使用的单元怎么解决_自动化:利用excel开源库自动生成文档,解决重复性操作...

不管是生活还是工作,我们经常会使用excel文档,如果仔细观察,就会发现其中会很多重复性的操作。因此,这就给我们提出这样的问题,怎样才能自动生成文档,解决重复性的操作。

初步的解决方案就是代码层面上组合读写excel接口,从而实现自动生成文档的功能。

如果自己实现读写excel文档库的话,那么将会很耗时,并且也不现实。所以通过网络搜索寻找到基于QT来读写excel文档的开源库QXlsx。

本文将介绍开源库QXlsx的简单使用和效果,基于这些操作的组合,就可以实现自动生成文档功能,并且能够重复使用。

一、简单的例子

1、 网上下载QXlsx开源库后,需要将QXlsx加载到Qt Creator工具,直接参考开源库代码中的HowToSetProject.md文件即可

2、调用开源库接口write, 通过两种方式展示写入数据,一种是通过单元格名称写入字符串,比如A1、B1等,另一种方式是通过行列方式写入字符串。最后调用开源库接口saveAs生成excel文档。

715060e383b8540351162ab3145ed522.png

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

76ac18732747ce10860deb238c874d0f.png

二、自动换行

有时候写入单元格的内容比较长,超过了单元格的展示范围,而我们又不想扩大单元格的宽度,怎么办呢,可以通过设置自动换行的方式,让写入单元格的内容自动适配当前的单元格。

1、定义QXlsx::Format类型的格式变量,然后初始化格式,携带配置好的格式写入到单元格

24640453d3869258dc46415ab779882f.png

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

165e988f39daf3470eee70acada591ea.png

三、多个表单

当需要多个表单来保存不同的数据的时候,这就涉及到创建多个表单的问题。下面将用创建两个表单的例子来作为简单的入门知识点。

1、调用接口addSheet来添加表单,并且往表单中写入数据

cf705a5db93147356202efa44c8fcc1e.png

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

653dfcb947c7d7bcc93a52994ca35a03.png
17f4e57764c489822026187da220f6b7.png

四、读取excel文档

写入数据到excel文档之后,肯定有需求场景需要读取excel文档数据来展示,所以,接下来将说明读取excel文档的所有数据的方法。

1、先读取excel文档,然后获取每一个表单,读取每一个表单中的单元格内容

db8fa7b53c5926628fe48dadca7321df.png

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

d9526706ba6dd643defb58736c7df941.png

五、总结

从上面的例子中,可以看出QXlsx::Document是控制整个excel文档的类,它可以控制表单的宽高,控制表单等功能,而QXlsx::Format则是控制单元格格式的类,它可以设置字体、字体大小,对齐方式等。

QXlsx的局限性,它不支持多线程,当表单比较多的时候,加载表单会很耗时。所以,它不适用大量读写操作的场景。对于大量读写操作的场景,可以考虑使用json进行保存,当需要excel数据的时候,再将json中的数据转化到excel文档。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值