毫无疑问,若想在网页中预览word文档和excel表格,必然先将其转换成html格式。在windows office中是可以将word和excel另存为html文件的,但是由于正版需要购买和安装体积较大的原因对于项目来说部署成本有点高了,而且只能运行在windows之上。这里给大家推荐一个更易用的东西:libreoffice。libreoffice是一款功能强大的办公软件,默认使用 OpenDocument Format (开放文档格式), 并支持其他多种文档格式,比如*.docx, *.xlsx, *.pptx等。它是跨平台软件,可运行于Microsoft Windows, GNU Linux以及Mac OS X等操作系统上。也就是不论你的项目部署在哪个平台都可以使用。最最重要的是它是自由软件,对个人和企业用户均免费。
好了,对于libreoffice就介绍到这里,感兴趣的可以点击上面的链接直接去官网查看详细。这里演示如何用它来实现在网页中预览word和excel。
首先,在官网下载稳定版的libreoffice。我下载的版本是5.1.6 。下载完成后自行安装,要记住安装目录。
安装完成后,在配置环境变量的对话框中在path变量添加你安装到的目录,比如我是安装在默认的目录,如图配置:
配置环境变量环境变量配置完成后,可以通过命令来实现将word或excel转为html。
开始-》运行-》cmd,在命令行窗口输入: soffice --help 来获取命令参数列表,如图:
help输出结果观察help命令输出的结果,在下方有一个 --convert的命令参数,会发现可以通过这个命令来将所支持的文件转成txt\html\pdf等。我们准备一个word文档来测试这个命令:
输入: soffice --convert-to html D:\test.doc --outdir D:\test
其中 D:\test.doc是要转换的文档,--outdir后面是输出的目录,默认输出文件名和源文件名称相同。执行之后会在指定目录看到转换完成的test.html文件。
附上两张转换前后的对比:
对比1 对比2可见,转换后的html和原文档的样式是有区别的,但毕竟这是一种简单的方式来实现这种需求。如果需求比较苛刻,只能另寻他法了。
有了这个命令,在服务端吧对应的文件转换成html就是soEasy了。我在asp.net中简单的实现了这个示例,在例子中用Process来执行制定的应用程序命令,并赋予参数。.net代码如下:
asp.net中转换的示例以上虽然是.net代码,但在其他项目中也是有相应的执行办法的,由于对其它语言类库不熟,这里就不一一列举了。执行成功后就可以执行加载这个生成完的html了。实际应用中可以根据自己的需求来决定如何来展示转换完成的html。
网友评论