word操作总结

以前的下载链接  不知道为啥需要积分那么多了,重新放一个链接:

https://pan.baidu.com/s/1ohEuEzRKE5C_46jNxCUjIw
提取码:iwro

在公司工程中,有好多需求需要用到导出word文件,走过好多路,最早用的csdn上一个vb写的库导出word,完成当时一个紧迫项目

后来继续研究报表时,用了qt的com组件调用库,来调用微软的office组件进行报表导出,此功能要求电脑必须装了office,并且office com组件一定要能检测到,否则也是不行的,后来更改为这个,基本满足需求,但是随着需求增加,一些问题也暴露出来,有些客户有规定,要求客户电脑不能安装office,采用国产WPS,那么此方法肯定就不行了,并且还一个问题是,导出的报表中,图片数量增加,采用com组件方式生成word报表,导出速度特别慢,当时在网上找了好多方法,没有特别好的解决办法,后来看到微软的office2003以后,word格式采用的xml形式进行组合的

测试步骤:

1、把文件名.docx  改为 文件名.zip 

2、解压 文件名.zip  可以得到  _rels    docProps  word 文件夹等,还有[Content_Types].xml文件

 其中word文件下document.xml是存放文件内容的,修改里面的节点内容,然后 重新进行zip压缩,更改为.docx     你可以欣喜的发现,word里的内容跟着变了

3、  继续刚才的,word下还一个文件夹为media文件夹,你可以看到这里面存放的是图片,如果你的word有插入图片的话,引用的图片会在这里展示出来,如果你要新增图片,

把你要插入的图片先放入这个文件夹下(具体怎么操作,自己总会吧,复制文件从一个地方到另个地方),然后要修改document.xml文件,在哪显示就在哪修改,但是 还得注意一点,在document.xml 中显示这个图片的话,必须得知道图片的名字和位置,media下的文件命名一般都是image1.png  image2.png顺序下去的,你放进去的图片命名不要重复,并且放进去后,必须在word文件夹下_rels文件夹下的文件document.xml.rels进行注册,这个也是xml文件,格式我想你如果动手了的话,应该是可以看懂得,最后拿着这个文件中注册图片id名称,例如rId213,去document.xml去使用就可以了,当然document.xml中图片的节点格式也是固定的,你复制一个现有的格式参考,更改引用的图片id值就可以。

另外,要注意的是,图片格式的问题,图片格式必须在最外层的[Content_Types].xml文件进行注册,否则打开word会报错的,这个文件时包装所有xml文件的

具体实现思路,如果只是更改或者展示信息的话,修改document.xml就可以了,复杂点的,要插入图片的,就涉及上面提到的几个文件了,在复杂的,得你们自己摸索的,这边项目只涉及这么多,文件修改完,开源7z进行压缩,更改文件名 等等   思路给你们,具体怎么搞 你们自己定

测试过word中,如果有200张图片的话,一般要15秒左右,图片越多,耗得时间越长,如果只是文字,没有图片的话,基本1秒搞定,时间都是耗在7z压缩了,越大时间越慢,如果用com组件方式,不管多少数据量,一般3秒以上是肯定的,并且图片越多,速度比这方式慢10倍以上

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值