推荐一套.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.运行和验证结果:



题外话:
最初在官方网站查看资料的时候,以为是一家国外的公司。无意中从联系方式中看到是来自内地的公司,还是比较惊讶。毕竟一直觉得做开发工具和控件类产品是比较有技术难度的工作,而且这套控件靠质量和技术赢得了众多知名企业客户,很难能可贵,值得我们技术同行佩服和学习。
所以,如果有机会在商业项目中使用类似的工具,那就应该考虑采购和支持一下。
推荐一套.NET文档处理组件Spire.Office的更多相关文章
- DCloud-MUI:文档 UI组件
ylbtech-DCloud-MUI:文档 UI组件 1.返回顶部 1.accordion(折叠面板) 折叠面板从二级列表中演化而来,dom结构和二级列表类似,如下: <ul class=&qu ...
- [.NET] 打造一个很简单的文档转换器 - 使用组件 Spire.Office
打造一个很简单的文档转换器 - 使用组件 Spire.Office [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6024827.html 序 之前,& ...
- 一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
在目前的软件项目中,都会较多的使用到对文档的操作,用于记录和统计相关业务信息.由于系统自身提供了对文档的相关操作,所以在一定程度上极大的简化了软件使用者的工作量. 在.NET项目中如果用户提出了相关文 ...
- flexpaper 开源轻量级的在浏览器上显示各种文档的组件
FlexPaper是一个开源轻量级的在浏览器上显示各种文档的组件,被设计用来与PDF2SWF一起使用, 使在Flex中显示PDF成为可能,而这个过程并无需PDF软件环境的支持.它可以被当做Flex的库 ...
- GrapeCity Documents (服务端文档API组件) V3.0 正式发布
近日,葡萄城GrapeCity Documents(服务端文档API组件)V3.0 正式发布! 该版本针对 Excel 文档.PDF 文档和 Word 文档的 API 全面更新,加入了用于生成 Exc ...
- GrapeCity Documents for Excel 文档API组件 V2.2 新特性介绍
GrapeCity Documents for Excel 文档API组件 V2.2 正式发布,本次新版本包含诸多重量级产品功能,如:将带有形状的电子表格导出为 PDF.控制分页和电子表格内容.将Ex ...
- 在线文档预览方案-office web apps续篇
上一篇在线文档预览方案-office web apps发布后收到很多网友的留言提问,所以准备再写一篇,一来介绍一下域控服务器安装,总结一下大家问的多的问题,二来宣传预览服务安装与技术支持的事情. 阅读 ...
- [转载]在线文档预览方案-Office Web Apps
最近在做项目时,要在手机端实现在线文档预览的功能.于是百度了一下实现方案,大致是将文档转换成pdf,然后在通过插件实现预览.这些方案没有具体实现代码,也没有在线预览的地址,再加上项目时间紧迫.只能考虑 ...
- 【开源】AspnetCore 2.0 自动API文档生成组件,支持protobuffer
本文地址 http://www.cnblogs.com/likeli/p/8204054.html 关于 API文档自动生成,用于对APP端的开发帮助文档生成,默认ProtoBuffer传输格式. 本 ...
随机推荐
- the least common multiplier
Description There are many unsolvable problem in the world.It could be about one or about zero.But t ...
- Mahout-Pearson correlation的实现
计算公式: 并通过以下代码对Mahout in Action的结果进行了验证: 代码例如以下: ` package com.example.mahout; public class TestColl ...
- 攻略三战的完美体验3Castle Fantisia阿兰·梅希亚战争艾伦西战记它包含重做版本(这是新的艾伦·梅希亚大战)
(城堡幻想曲3,纠正大家个错误哦,不是圣魔大战3,圣魔大战是城堡幻想曲2,圣魔大战不是个系列,艾伦西亚战记==艾伦希亚战记,一个游戏日文名:タイトル キャッスルファンタジア -エレンシア戦記-リニュー ...
- 图解UML类与类之间的六中关系
大话设计模式上的一个图,我用EA画出来的: UML中的6大关系相关英文及音标: 依赖关系 dependency [di'pendənsi] 关联关系 association [ə,səuʃi' ...
- MySQL 採用Xtrabackup对数据库进行全库备份
1,xtrabackup简单介绍 关于数据库备份以及备份工具.參考:http://blog.itpub.net/26230597/viewspace-1460065/,这里来介绍xtrabackup已 ...
- django url调度
Django的url配置相同遵循着DRY(dont repeat yourself)的规则.下面都是官方文档的样例: 首先介绍的是Django怎样处理http的请求: 1.在setting里定义ROO ...
- Tokyo Tyrant(TTServer)系列(四)-tcrmgr远程管理与调试
Tokyo Tyrant(TTServer)系列-tcrmgr(远程管理与调试) tcrmgr是TokyoTyrant的管理工具,对ttserver进行管理与执行命令: 通过输入tcrmgr回车,能够 ...
- 获取option中间的值
<select name="wytype" id="wytype"> <option value="">—请选择—& ...
- RotateDisp – 一键旋转显示画面 - 小众软件
RotateDisp – 一键旋转显示画面 - 小众软件 RotateDisp – 一键旋转显示画面
- Zxing中文乱码解决方法
Zxing中文乱码解决方法总结 尝试过非常多方法 最后发现此方法解决的乱码最多....... 在百度搜索二维码图片 经过前2页的測试 除开一张图之外 其余都能扫描出结果 假设大家有更好的解决方法 ...