受欢迎的博客标签

Microsoft Office Series:Office在线预览及PDF在线预览的实现方式大集合

Published

.NET library that can read/write Office formats without Microsoft Office installed.

1.NPOI

npoi - .NET library that can read/write Office formats without Microsoft Office installed.

Supported formats: xls, xlsx, docx.

2.EPPlus

3.GcExcel

GcExcel is a server-side Excel API that can generate, load, save, convert, calculate, format, parse, and export spreadsheets in any .NET Standard targeted application. With full .NET Core support for Windows, Linux, and Mac, GcExcel can deploy to Azure without any Excel dependencies.

https://www.grapecity.com/blogs/create-excel-documents-on-server-using-server-side-excel-api

Generate Excel Service

https://www.grapecity.com/componentone/docs/webapi/online-webapicore/GenerateExcelService.html

4.Aspose.Total for .NET


Aspose.Total for .NET offers a complete range of .NET APIs enabling the developers to create, manipulate, print & convert Word, Excel, PDF, PowerPoint, Outlook and more than 100 other file formats in .NET applications.

5.GroupDocs.Total for .NET


GroupDocs.Total for .NET comprises of APIs that can be used to develop .NET applications having the ability to view, convert, annotate, compare, sign, assemble, edit, search and parse most commonly used document formats.

6.

 

Excel

Excel的Office Excel的格式有两种:

a、一种是.XLS是03版的Office Excel,无法打开高版本的。

b、一种是.XLSX是07版(或者07以上的)的Office Excel,可以打开低版本的。

所以我们在使用NPOI导入数据时不同格式获取Excel工作簿对象也有所不同

 

一、服务器先转换为PDF,再转换为SWF,最后通过网页加载Flash预览

微软方:利用Office2007以上版本的一个PDF插件SaveAsPDFandXPS.exe可以导出PDF文件,然后再利用免费的swftools.exe工具生成swf格式的Flash文件,网页中加载flexpaper免费开源工具(有广告)实现Flash文件的预览。

优点:

1、有效的保护的源文件及文件的复制,不可复制也是缺点。

2、源码是自己的,版权有保证。

缺点:

1、服务器上必须安装Office软件。

2、导出PDF文件本身是个打印过程,Excel页面格式未设置,会出现一张表格打印出多页来,阅读体验大大下降。

3、转换过程非常耗费资源,低配的CPU几乎能跑满,服务器卡死。转换时间也非常漫长,这个时间主要是卡在了转换PDF上面。

4、转换完成服务器会遗留大量Excel、Word进程无法正常退出,有一些折中的解决办法,可以在网上搜索。5、设置非常麻烦,本身微软官方的说法Office软件是客户端程序,在与IIS交互的时候本身就未设计。所以很多程序员把精力浪费在了调试程序上面。有两点在调试的时候需要注意。一个是在web.config中设置 <identity impersonate="true" userName="administrator" password="你的服务器管理员密码" />,一个是在Office软件的设置中设置跟桌面交互。

6、严重浪费磁盘空间,一个文件还需要一个PDF文件、一个SWF文件,是否每次都转换,纠结是要硬盘空间呢还是要CPU的资源。参考链接:http://www.cnblogs.com/expectszc/archive/2012/04/04/2432149.html http://www.cnblogs.com/liuning8023/archive/2013/03/04/2943482.html http://www.cxyclub.cn/n/29549/ 

非微软方:

没有微软的Office软件可安装,只能用第三方的openoffice(开源、免费)来转换PDF文件,其它方面都一样,优缺点一样无论是office还是openoffice,转换速度漫长与不支持高并发,注定其只能适合十几个人的小型办公OA系统使用参考链接:http://blog.csdn.net/z69183787/article/details/17468039 

二、Office文档直接转换为SWF

,通过网页加载Flash预览 利用flashpaper直接转换为SWF文件(虚拟打印机),然后利用flexpaper预览Flash文件。flashpaper是Macromedia的一款产品,随着被Adobe公司收购,Macromedia对于这款软件早就放弃了,国内尚无人在程序中调试成功过。参考链接:http://www.dzwebs.net/1149.html 

三、office转Html、pdf转图片在线预览文件Html文件 利用DCOM配置直接操作Office文件,读取文件内容,导出Html文件优点:实践证明此方法不科学。

缺点:

1、服务器上必须安装Office软件。

2、配置麻烦,正如微软所说,读取Office不是这么干的。

3、转换的文件格式均丢失。

4、仅限于IIS服务器,利用ASP.net(C#)。

参考链接:http://www.cnblogs.com/tangbinblog/archive/2012/11/29/2794110.html 

四、第三方ActiveX浏览器控件

 如科瀚的SOAOffice中间件、卓正软件的pageoffice控件、WebOffice控件、国外的Office Viewer ActiveX Control

优点:可在线编辑等。

缺点:

1、客户端需安装控件。

2、付费。

3、在Html5、CSS3以及桌面向浏览器转换的大潮流下,控件已是昨日黄花。参考链接:http://www.kehansoft.com/soaoffice/index.htm http://www.zhuozhengsoft.com/ http://www.officectrl.com/ http://www.anydraw.com/ 

五、微软的Office365 微软新出的在线文档,与Google文档抗衡,估计没谷歌文档,微软也懒得出这个

优点:微软自家的东西原生态呈现。

缺点:文件大小限制在10M以内,10M以外的无法预览加载文件较多,各种图片、文字、样式、JQuery等,页面臃肿,加载速度慢,耗费流量,不适合手机预览需要微软的批量许可(即授权),硬件投入方面:架设一台单独的服务器(可以是虚拟机),配置过低能安装,但无法运行,另外还需一台域服务器。而这两台机器上均不能安装其它程序,比如SQLServer,在Office365服务器上每次重启IIS会重置,也就是说你不能有任何其它网站。其主要是用来与SharePoint搭配使用。参考链接:http://technet.microsoft.com/zh-cn/library/jj219456(v=office.15).aspx 

六、第三方成熟的服务

如OfficeWeb365

优点:

1、OfficeWeb365采用适合中文排版的纯Html、CSS技术。

2、接口简单,适合PHP、JSP、ASP.net等所有的对接,省心省力。

3、费用低廉,节省投入。

4、不用关心客户端是否安装了Office软件,不用在客户端部署。

5、手机在线预览2页Word文档只有3K大小,且格式保留,领先全球的中文在线预览技术。

6、支持国产的金山WPS,这在国内尚属首列。

7、其解析速度(100ms)与高并发的支持远远把对手甩在了后面。

缺点:

1、OfficeWeb365只能查看不能编辑,目前在线编辑版的正在开发。参考链接:http://www.officeweb365.com 

七、在浏览器中直接打开

通过设置MiME类型,告诉浏览器这是Office文件,浏览器直接调用本地Office或PDF软件打开

优点:

1、不用编程,不用第三方服务,直截了当。

2、很多用户安装了Adobe的PDF预览软件,同时在浏览器上也直接安装了插件,浏览器可直接查看PDF文件。

缺点:你永远不知道客户机器上是否安装了Office软件,虽然几乎都安装了,但直接调用Office软件,客户体验大大下降,更何况还有个讨厌的迅雷一直在监视你的浏览器,不给你打开的机会,当然这些都是你无法预知的。

八、其它 如金山快写、一些网盘的预览参考链接:http://w.wps.cn/     .

 

Useful links

Windows Forms App - Export Data to an Excel Sheet with AutoFormat Feature using C#(using Excel = Microsoft.Office.Interop.Excel;)

 

How to Create Table of Contents (TOC) with  Spire.Doc in C#  in word