Word的自动化读写库

之前一直以为Word作为微软的龙头产品,其生态一定极为封闭,因此在文档生成方面一直都使用的Latex。然而使用Word毕竟是大多数人的习惯,要将Latex文档生成应用到与使用者有交互的场景时总遇到不少问题,于是产生了是不是可以用程序读取和生成Word的想法。

没想到经过一番搜索和折腾,发现的确有几个非常给力的".NET"库能在用户不装Word的情况下做到这件事。本人详细研究和使用了其中比较有代表性的两个,在本篇文章中将进行总体简介,之后在后续的系列文章中将详细介绍其操作。

DocX库

DocX库是"Xceed Words for .NET"的开源版本,github的地址在这。该库是由爱尔兰的"Cathal Coffey"博士生开发由"Przemyslaw Klys"维护的。在1.5.0版本后由"Xceed."公司维护,可以在非商业化场景下使用。

本人用该库完成了一个项目的编写,最大的感受就是其效率非常高,完成一篇篇幅不小的Word文档生成就是瞬间的事情,而且对于比较简单的操作可以通过开源代码里面的sample示例习得。因此如果对于没有啥特殊要求的Word生成场景来说用该库足矣。

该库的不足之处在于功能不是特别完善,比如插入三线表本人就弄了半天,表的线宽设置参数有些是无效的等等。而且如果不用模板,生成的文档的一些默认设置比较非主流。此外该库最大的功能缺失还在于它只能做文档生成,文档读取方面则无能为力。

Spire.Doc库

不同于DocX库,Spire.Doc库是一个商用的Word读取生成库,因此也是闭源的,官网在此。不过接受了不能研究其源代码的设定后,用它进行Word的操作相对来说会比DocX库要完备一点。

该库分为两个版本,商业版本"Spire.Doc"在没有付费的情况下生成的文档第一页会有一行版权声明。而免费的"Free Spire.Doc"完全免费并没有任何警告信息,但是免费版有篇幅限制。在加载或操作Word文档时,要求Word文档不超过500个段落,25个表格。同时将Word文档转换为PDF和XPS格式时,仅支持转换前3页。除了上面的不同外,经过本人测试,其商业版本在生成文档的效率上要高于免费版本,在本人用其生成包括目录的文档时,免费版本用了20s左右的情况下,商业版本只用了10s左右,当然这有可能是免费版本的版本号较低还没最新商业版本优化的好的缘故。

该库的优点是功能相对完善,毕竟是商业产品,库的完成度和资料都不是DocX库可比的。因此如果要进行Word的读写操作,而只希望用一个库的情况下,该库无疑是最佳的选择。而其缺点就是免费版的效率低,因此在一些场景下用该库又觉得有点别扭。

而如果能接受用多个库的情况下,本人觉得最好的解决方案是将源文档拆成不要超过"Free Spire.Doc"限制的文档大小,然后使用其进行读取,而写入的部分使用DocX库进行。

OpenXML库

OpenXml库是由微软维护的一个开源的Office文档读写库,github的地址在这

由于是微软自己维护的库,因此它是本文介绍的Word自动化读写库中最靠谱的存在。其他类似的库可以理解为是它的二次封装,虽然用起来会方便一点,然而对于愿意折腾的人来说,应该毫不犹豫选择这个库。

另外,其提供的office文档查看工具(OpenXMLSDKTool)也非常赞,可以直接看到文档的构成和特定格式的描述代码,是开发相关程序的一大利器:
请添加图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值