推荐一套.NET文档处理组件Spire.Office
以前的项目中用到一点Word简单处理的功能(文字替换和转PDF格式),当时使用的是一套COM组件,必须在服务器上安装office环境。最近考虑系统升级,希望能找个.NET组件,省去COM组件的注册和环境依赖。朋友推荐了Spire.Office组件,测试了一下,感觉挺不错。特此记录和介绍一下,大家以后也多一个选择。
经过简单的代码测试和查阅资料,个人总体评价如下:
优点与特色:
1.完全脱离Office环境;
2.纯.NET组件,与COM组件相比,省去注册和开发中的经常引用丢失,同时代码中的参数简化很多;
3.支持.NET体系下的各种技术平台(ASP.NET/WinForm/WPF/SilverLight)和多语言(C#/VB.NET);
4.示例代码很齐全,帮助文档很详细;
5.接口设计封装合理,上手迅速,易于使用;
6.对文档兼容性较好(据说支持从97到最新的文档,但未验证)。
建议与期待:
1.中文资料。目前的网站和帮助文档都做的相当不错,虽然是英文的,但对绝大多数开发人员基本不构成障碍,如果能有中文版则更锦上添花。
2.希望能够提供简单的可视化文档控件和编辑器,那样的话(也许是我没发现),则开发人员能够轻易地在系统中定制和集成一个简化版的文档编辑器。
测试的方法和步骤如下:
下载和安装:
1.进入Spire.Office的官方网站:http://www.e-iceblue.com/
2.网站列出了多种技术平台下的各类文档处理组件,选择需要的组件并下载(提供了免费的试用版本),如下图:
3.安装程序并查看帮助文档和示例代码:
制作测试程序:
1.创建工程和引入组件,这个很easy。除了可以从示例代码中找到引入的类库,还可以通过Nuget在线安装需要的dll:
2.编写测试代码(示例比较简单,但通过和我之前的COM组件相比较,确实精简不少):
//initialize word object document = new Document(); document.LoadFromFile(samplePath); //get strings to replace Dictionary<string, string> dictReplace = GetReplaceDictionary(); //Replace text foreach (KeyValuePair<string, string> kvp in dictReplace) { document.Replace(kvp.Key, kvp.Value, true, true); } //Save doc file. document.SaveToFile(docPath, FileFormat.Doc); //Convert to PDF document.SaveToFile(pdfPath, FileFormat.PDF); MessageBox.Show("All tasks are finished.", "doc processing", MessageBoxButtons.OK, MessageBoxIcon.Information); document.Close();
3.运行和验证结果:
题外话:
最初在官方网站查看资料的时候,以为是一家国外的公司。无意中从联系方式中看到是来自内地的公司,还是比较惊讶。毕竟一直觉得做开发工具和控件类产品是比较有技术难度的工作,而且这套控件靠质量和技术赢得了众多知名企业客户,很难能可贵,值得我们技术同行佩服和学习。
所以,如果有机会在商业项目中使用类似的工具,那就应该考虑采购和支持一下。