[.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环境.最近考 ...
随机推荐
- Tomcat一个BUG造成CLOSE_WAIT
之前应该提过,我们线上架构整体重新架设了,应用层面使用的是Spring Boot,前段日子因为一些第三方的原因,略有些匆忙的提前开始线上的内测了.然后运维发现了个问题,服务器的HTTPS端口有大量的C ...
- 0-1背包问题蛮力法求解(c++版本)
// 0.1背包求解.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> #define ...
- Android探索之AIDL实现进程间通信
前言: 前面总结了程序间共享数据,可以使用ContentProvider也可以使用SharedPreference,那么进程间怎么共享内存呢?Android系统中的进程之间不能共享内存,因此,需要提供 ...
- 为.NET Core项目定义Item Template
作为这个星球上最强大的IDE,Visual Studio不仅仅提供了很多原生的特性,更重要的是它是一个可定制的IDE,比如自定义Project Template和Item Template就是一个非常 ...
- 从netty-example分析Netty组件
分析netty从源码开始 准备工作: 1.下载源代码:https://github.com/netty/netty.git 我下载的版本为4.1 2. eclipse导入maven工程. netty提 ...
- ajax请求和aspx返回数据
ajax请求: $(function () { $.ajax({ url: "index.aspx?method=send", ...
- 编译器开发系列--Ocelot语言6.静态类型检查
关于"静态类型检查",想必使用C 或Java 的各位应该非常熟悉了.在此过程中将检查表达式的类型,发现类型不正确的操作时就会报错.例如结构体之间无法用+ 进行加法运算,指针和数值之 ...
- sqlServer去除字符串空格
说起去除字符串首尾空格大家肯定第一个想到trim()函数,不过在sqlserver中是没有这个函数的,却而代之的是ltrim()和rtrim()两个函数.看到名字所有人都 知道做什么用的了,ltrim ...
- Linux系统中的Device Mapper学习
在linux系统中你使用一些命令时(例如nmon.iostat 如下截图所示),有可能会看到一些名字为dm-xx的设备,那么这些设备到底是什么设备呢,跟磁盘有什么关系呢?以前不了解的时候,我也很纳闷. ...
- 我的MYSQL学习心得(十五) 日志
我的MYSQL学习心得(十五) 日志 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...