原文:推荐一套.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的更多相关文章

  1. DCloud-MUI:文档 UI组件

    ylbtech-DCloud-MUI:文档 UI组件 1.返回顶部 1.accordion(折叠面板) 折叠面板从二级列表中演化而来,dom结构和二级列表类似,如下: <ul class=&qu ...

  2. [.NET] 打造一个很简单的文档转换器 - 使用组件 Spire.Office

    打造一个很简单的文档转换器 - 使用组件 Spire.Office [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6024827.html 序 之前,& ...

  3. 一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)

    在目前的软件项目中,都会较多的使用到对文档的操作,用于记录和统计相关业务信息.由于系统自身提供了对文档的相关操作,所以在一定程度上极大的简化了软件使用者的工作量. 在.NET项目中如果用户提出了相关文 ...

  4. flexpaper 开源轻量级的在浏览器上显示各种文档的组件

    FlexPaper是一个开源轻量级的在浏览器上显示各种文档的组件,被设计用来与PDF2SWF一起使用, 使在Flex中显示PDF成为可能,而这个过程并无需PDF软件环境的支持.它可以被当做Flex的库 ...

  5. GrapeCity Documents (服务端文档API组件) V3.0 正式发布

    近日,葡萄城GrapeCity Documents(服务端文档API组件)V3.0 正式发布! 该版本针对 Excel 文档.PDF 文档和 Word 文档的 API 全面更新,加入了用于生成 Exc ...

  6. GrapeCity Documents for Excel 文档API组件 V2.2 新特性介绍

    GrapeCity Documents for Excel 文档API组件 V2.2 正式发布,本次新版本包含诸多重量级产品功能,如:将带有形状的电子表格导出为 PDF.控制分页和电子表格内容.将Ex ...

  7. 在线文档预览方案-office web apps续篇

    上一篇在线文档预览方案-office web apps发布后收到很多网友的留言提问,所以准备再写一篇,一来介绍一下域控服务器安装,总结一下大家问的多的问题,二来宣传预览服务安装与技术支持的事情. 阅读 ...

  8. [转载]在线文档预览方案-Office Web Apps

    最近在做项目时,要在手机端实现在线文档预览的功能.于是百度了一下实现方案,大致是将文档转换成pdf,然后在通过插件实现预览.这些方案没有具体实现代码,也没有在线预览的地址,再加上项目时间紧迫.只能考虑 ...

  9. 【开源】AspnetCore 2.0 自动API文档生成组件,支持protobuffer

    本文地址 http://www.cnblogs.com/likeli/p/8204054.html 关于 API文档自动生成,用于对APP端的开发帮助文档生成,默认ProtoBuffer传输格式. 本 ...

随机推荐

  1. for循环遍历字符串的还有一种方法

    遍历字符c,让它各自等于字符串数组chars里面的各个字符.然后运行以下的语句,当c被赋值为chars里面全部字符各一次后.就会退出这个循环. 通常我们遍历字符串数组用 for(int i=0;i&l ...

  2. sql为数字添加千分位(也就是钱的格式)

    感觉这个东西在项目中用得挺多的,之前在前台页面是用正则来处理,现在由于是数据查询,所以直接在查出数据的时候将其转为指定的千分位格式,省的前台再处理,不讲原理,因为我也看不懂,不过会用就行了,在网上找了 ...

  3. PreTranslateMessage和TranslateMessage区别

    PreTranslateMessage是消息在送给TranslateMessage函数之前被调用的,绝大多数本窗口的消息都要通过这里,比较常用,当需要在MFC之前处理某些消息时,常常要在这里添加代码. ...

  4. ViEmu For VS2010 3.0 解除30天限制的方法

    一.概述 首先,ViEmu试用版在安装时会记录安装的时间,用于判断是否已经过了限制的时间,这个时间记录在注册表中 以本人的机器(WIN7X64)为例,它记录在 HKEY_CLASSES_ROOT\Wo ...

  5. 搭建实时同步data guard的最高可用-切换主备

    搭建实时同步data guard的最高可用-切换主备 首先保证主库在归档模式下:错过N次了 准备二台机器(hostname gw hosts ech0)host-only [root@node1 ~] ...

  6. UVa 11233 - Deli Deli

    题目:求所给单词的负数形式. 分析:模拟. 直接按章题意分情况求解就可以. 说明:按语法也能够(⊙_⊙). #include <iostream> #include <cstdlib ...

  7. Python爬行动物(一):基本概念

    定义网络爬虫          网络爬虫(Web Spider,也被称为网络蜘蛛,网络机器人,也被称为网页追逐者).按照一定的规则,维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁,自己主动索引 ...

  8. jquery 设置select的默认值

    <select id="sel" > <option value="s1" > aaaa </option> <opt ...

  9. Codeforces Round #309 (Div. 2) C

    题意: 就是给出总共同拥有k种颜色.每种颜色有ki种,排列必须满足第i+1种的最后一种颜色必须在第i种最后一种颜色的后面,其它颜色任意.总共同拥有多少种排列点的方法. 分析: 如果d[i]表示前i种的 ...

  10. php编码

    原文:php编码 PHP 页面编码声明与用header或meta实现PHP页面编码的区别     php的header来定义一个php页面为utf编码或GBK编码 php页面为utf编码 header ...