[.NET] 打造一个很简单的文档转换器 - 使用组件 Spire.Office
打造一个很简单的文档转换器 - 使用组件 Spire.Office
【博主】反骨仔 【原文】http://www.cnblogs.com/liqingwen/p/6024827.html
序
之前,《开头不讲"Hello Word",读尽诗书也枉然 : Word 操作组件介绍 - Spire.Doc》一文简单介绍了 Spire.Doc 如何使用。这次我们来介绍如何打造一个简单的文档转换器。
目录
Spire.Office 介绍

关于 Spire.Office,它是一个专门为开发人员创建,读取,写入设计的库,转换和从打印 word 文档文件。作为一个独立的 .NET组件,它不需要在机器上安装微软的 Word 等办公软件。然而,它可以将微软的“文档创建功能”集成到任何开发人员的网络应用程序中。它是一个可靠的 MS Word 的API,可以执行许多Word文档处理任务。它支持 C #,VB.NET,ASP.NET 和 ASP.NET 的 MVC,以及支持Word 97-2003 / 2007 / 2010 / 2013 并能将它们转换为常用的文件格式,如 XML,RTF,TXT,XPS,EPUB 等高质量转换,反之亦然。它是一款来自 E-iceblue 公司开发的组件。
以下是摘取“慧都控件网”对该公司的简单介绍。
E-iceblue 是一个 .NET、Silverlight 和 WPF 开发控件供应商。e-iceblue 的目标是为客户提供高质量的控件去阅读和写作不同格式的文件。E-iceblue 的控件被大部分的世界 500 强企业广泛使用。e-iceblue 的主要开发者在开发高性能、高质量的 .NET、Silverlight 和 WPF 控件技术方面有超过 10 年的经验。每天,e-iceblue 产品帮助大量的来自超过 60 个国家的大型/小型公司的开发人员从更容易、更好、更快和更富有成效的开发和向顾客交付可靠的应用程序。
库引用

我只是想打造 word 和 excel 转换器,所以只在 Nuget 中安装上图中的 ~.Doc 和 ~.XLS。
界面预览
我发现当 ~.Doc 和 ~.XLS 同时装在一个类库中的时候,在转换部分类型时会出现异常,所以采取了分层的形式。

WordConverter 只引用 ~.Doc。

这是很普通的一款拖控件完成的转换器。
代码片段
将核心的转换代码提炼出来会发现,使用起来是比较简单的。这里是 Word 转换的代码,Excel 可以依葫芦画瓢。
//创建文档对象
var document = new Document(); //加载文档
document.LoadFromFile("包含路径的文件名"); //例:document.SaveToFile("Sample.pdf", FileFormat.PDF);
//保存文件
document.SaveToFile("包含文件名的路径", "想转换的文档格式类型"); //打开文件,预览操作
Process.Start("包含路径的文件名");
这里的文档格式类型的支持也是比较多的,FileFormat 枚举。
public enum FileFormat
{
//
// 摘要:
// Microsoft Word 97 - 2003 Binary Document.
Doc = ,
//
// 摘要:
// Microsoft Word 97 - 2003 Binary Document or Template.
Dot = ,
//
// 摘要:
// Microsoft Word 2007 Document.
Docx = ,
//
// 摘要:
// Microsoft Word 2010 Document
Docx2010 = ,
//
// 摘要:
// Microsoft Word 2013 Document
Docx2013 = ,
//
// 摘要:
// Microsoft Word 2007 Template format.
Dotx = ,
//
// 摘要:
// Microsoft Word 2010 Template format.
Dotx2010 = ,
//
// 摘要:
// Microsoft Word 2013 Template format.
Dotx2013 = ,
//
// 摘要:
// Microsoft Word 2007 macro enabled file format.
Docm = ,
//
// 摘要:
// Microsoft Word 2010 macro enabled file format.
Docm2010 = ,
//
// 摘要:
// Microsoft Word 2013 macro enabled file format.
Docm2013 = ,
//
// 摘要:
// Microsoft Word 2007 macro enabled template format.
Dotm = ,
//
// 摘要:
// Microsoft Word 2010 macro enabled template format.
Dotm2010 = ,
//
// 摘要:
// Microsoft Word 2013 macro enabled template format.
Dotm2013 = ,
//
// 摘要:
// PDF format
PDF = ,
//
// 摘要:
// Rtf format
Rtf = ,
//
// 摘要:
// Xml file format.
Xml = ,
//
// 摘要:
// Text file format.
Txt = ,
//
// 摘要:
// Html format.
Html = ,
//
// 摘要:
// XPS format
XPS = ,
//
// 摘要:
// EPub format
EPub = ,
//
// 摘要:
// WordprocessingML format
WordML = ,
//
// 摘要:
// Word xml format.
WordXml = ,
//
// 摘要:
// The document is in the Word 6 or Word 95 format. Spire.Doc does not currently
// support loading such documents.
DocPre97 = ,
//
// 摘要:
// Instructs Spire.Doc to recognize the format automatically.
Auto =
}


只是一些新手入门的代码,看起来没什么好说的。
Demo 下载地址:http://git.oschina.net/liqingwen/OfficeConverter
传送门
《开头不讲"Hello Word",读尽诗书也枉然 : Word 操作组件介绍 - Spire.Doc》
[.NET] 打造一个很简单的文档转换器 - 使用组件 Spire.Office的更多相关文章
- 用mkdocs在gitee码云上建立一个简单的文档博客
利用mkdocs建立简单的文档博客 一.概述 MkDocs 是一个用于创建项目文档的 快速, 简单 , 完美华丽 的静态站点生成器. 文档源码使用 Markdown 来撰写, 用一个 YAML 文件作 ...
- 【转】Jsduck一个纯净的前端文档生成神器
让前端程序更具可维护性,是一个老生常谈的问题,大多数时候我们都关注于应用层面的代码可维护性,如:OO.模块化.MVC,编码规范.可扩展和复用性,但这都是属于设计层面需要考虑的事情,可维护性还应包含另一 ...
- 最近学习工作流 推荐一个activiti 的教程文档
全文地址:http://www.mossle.com/docs/activiti/ Activiti 5.15 用户手册 Table of Contents 1. 简介 协议 下载 源码 必要的软件 ...
- 使用Swing实现简易而不简单的文档编辑器
本文通过Swing来实现文档简易而不简单的文档编辑器,该文档编辑器的功能包括: 设置字体样式:粗体,斜体,下划线,可扩展 设置字体:宋体,黑体,可扩展 设置字号:12,14,18,20,30,40, ...
- (亲测解决)每次打开excel文件都会出现两个窗口,一个是空白的sheet1,另一个是自己的文档
版权声明:本文为博主原创文章,转载请注明出处! https://blog.csdn.net/sinat_34104446/article/details/80210424 一.问题描述每次打开Exce ...
- GitBook一个专注于帮助文档的工具
官网:https://www.gitbook.com GitHub组织:https://github.com/gitbookio GitBook一个专注于帮助文档的工具,比如: 1.简单的左侧列表右侧 ...
- elasticsearch _create api创建一个不存在的文档
https://www.elastic.co/guide/cn/elasticsearch/guide/current/create-doc.html当我们索引一个文档, 怎么确认我们正在创建一个完全 ...
- 如何使用 VuePress 搭建一个 element-ui 风格的文档网站
如何使用 VuePress 搭建一个 element-ui 风格的文档网站 { "devDependencies": { "vuepress": "1 ...
- 推荐一套.NET文档处理组件Spire.Office
原文:推荐一套.NET文档处理组件Spire.Office 以前的项目中用到一点Word简单处理的功能(文字替换和转PDF格式),当时使用的是一套COM组件,必须在服务器上安装office环境.最近考 ...
随机推荐
- C语言 · Anagrams问题
问题描述 Anagrams指的是具有如下特性的两个单词:在这两个单词当中,每一个英文字母(不区分大小写)所出现的次数都是相同的.例如,"Unclear"和"Nuclear ...
- TODO:Laravel 内置简单登录
TODO:Laravel 内置简单登录 1. 激活Laravel的Auth系统Laravel 利用 PHP 的新特性 trait 内置了非常完善好用的简单用户登录注册功能,适合一些不需要复杂用户权限管 ...
- Opserver开源的服务器监控系统(ASP.NET)
Opserver是Stack Exchange下的一个开源监控系统,系统本身由C#语言开发的ASP.NET(MVC)应用程序,无需任何复杂的应用配置,入门很快.下载地址:https://github. ...
- BAT“搅局”B2B市场,CIO们准备好了吗?
"CIO必须灵活构建其所在企业的IT系统,深入业务,以应对日新月异的数字化业务环境." BAT军团"搅局"B2B市场,CIO们准备好了吗? 庞大的企业级市场 ...
- Harmonic Number(调和级数+欧拉常数)
题意:求f(n)=1/1+1/2+1/3+1/4-1/n (1 ≤ n ≤ 108).,精确到10-8 (原题在文末) 知识点: 调和级数(即f(n))至今没有一个完全正确的公式, ...
- JavaScript
2015-08-01 16:20 JavaScript使用时需要注意的地方 1.引入JS的位置:最好的做法是把<script>的标签放到HTML文档的最后.</body>标签之 ...
- 【腾讯Bugly干货分享】Android Patch 方案与持续交付
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57a31921ac3a1fb613dd40f3 Android 不仅系统版本众多 ...
- JAVA通信系列二:mina入门总结
一.学习资料 Mina入门实例(一) http://www.cnblogs.com/juepei/p/3939119.html Mina入门教程(二)----Spring4 集成Mina http:/ ...
- 用Go实现的简易TCP通信框架
接触到GO之后,GO的网络支持非常令人喜欢.GO实现了在语法层面上可以保持同步语义,但是却又没有牺牲太多性能,底层一样使用了IO路径复用,比如在LINUX下用了EPOLL,在WINDOWS下用了IOC ...
- [NodeJS] Hello World 起步教程
概述: 做数据,免不了需要展示数据,数据可视化是必须经历的步骤. 本文将提供一个NodeJS的起步教程,是笔者这两天探索的小结. 正文: 1. 为什么使用NodeJS 究竟是以B/S还是C/S的架构 ...