本人技术小白一枚,前些天Boss让我写一个office在线预览的一个功能,各种找资料,总结一下我觉得比较好用的方法
网上大概有这几种office在线预览的方法
第一种
利用office online实现在线预览
Office平台提供了通过url的指向达到预览效果
http://view.officeapps.live.com/op/view.aspx?src=
后面的src填写文档上传到服务器的地址,地址需要通过用URLEncode进行编译
例:
http://view.officeapps.live.com/op/view.aspx?src=http%3a%2f%2fvideo.ch9.ms%2fbuild%2f2011%2fslides%2fTOOL-532T_Sutter.pptx
参照链接:
https://blog.csdn.net/csdn_cjgu/article/details/69389474
优点:这个功能由Office提供所以只需要拼接地址
缺点:文档的访问地址不能直接使用 ip,需要通过域名访问,并且端口必须是 80 端口,
Word、ppt文档的大小不能超过10M,Excel不能超过5M
第二种
1.通过第三方工具openoffice,将word、excel、ppt、txt等文件转换为pdf文件,
2.通过swfTools将pdf文件转换成swf格式的文件;
3.通过FlexPaper文档组件在页面上进行展示。
参照链接:
https://blog.csdn.net/tmac937436/article/details/70799687?locationNum=14&fps=1
总结一下这种方法的利弊,
优点:openoffice有各种版本,支持跨平台,转换速度快;
缺点:转换的样式会有缺损,Excel和openoffice完美不兼容 = . = ,转换的时候会出现折行,切分等情况,效果很不理想;
FlexPaper这个是用Flash插件显示的,展示的效果优点low。
第三种
利用poi实现office在线预览
-
public static void PoiWord07ToHtml (HttpServletRequest request) throws IOException{
-
-
String path= "C:\\Users\\Administrator\\Desktop\\";
-
String file = "C:\\Users\\Administrator\\Desktop\\word07.docx";
-
String file2 = "C:\\Users\\Administrator\\Desktop\\word07.html";
-
File f = new File(file);
-
if (!f.exists()) {
-
System.out.println( "Sorry File does not Exists!");
-
} else {
-
if (f.getName().endsWith( ".docx") || f.getName().endsWith( ".DOCX")) {