概述
最近项目中遇到一个新需求,需要将Word和Excel文档解析成为html编码并在前台显示,word中包含图片信息,保留原文档基础样式,博主查找了相关资料后,利用OpenOffice第三方插件,以及自己封装了一些解析方法,功能已经实现,在此分为上下两部分做总结以便后期使用,希望可以帮助到大家,如有更好的建议望留言告知。
1.OpenOffice
1.软件下载
首先,去到官网根据自己的需求下载所需要的版本(我的版本是4.1.4)。
2.软件安装
双击安装包 打开运行程序 这里是安装向导首界面 点击下一步按钮
点击浏览按钮 选择安装目录路径 如图所示
会自动检测系统中的插件 如果需要会自动安装
输入使用的用户 以及选择用户权限 点击下一步按钮
这里勾选通常安装 简单而且点击下一步
是否在桌面上创建一个快捷方式 建议勾选
这是安装完成界面 点击完成关闭安装向导
PS:安装度娘上都有,博主帮你们移植过来,按照步骤即可。
3.启动OpenOffice服务
打开cmd命令窗口,进入OpenOffice安装目录下的program目录,如下图
因为我的OpenOffice安装在D盘所以我先进的D盘,至于怎么在cmd里敲命令行我想大家都懂得,在这里我就不献丑了。
进入program目录后,继续执行(按原句执行不要更改)
soffice -headless -accept=”socket,host=127.0.0.1,port=8100;urp;” -nofirststartwizard
如下图:
执行完成后可打开:任务管理器 进行查看服务是否启动 如下图:
记住每次重启电脑都得重新打开OpenOffice执行上述步骤,如果需要自启动请自行写自启动脚本
4.工具类
OpenOfficeUtils.java
package com.utils;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ConnectException;
import com.artofsolving.jodconverter.DocumentConverter;
import com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection;
import com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection;
import com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter;
/**
* 任意文件转化为html
*
* @author Mr.F
*
*/
public class OpenOfficeUtils {
// 任意文件转html
public
static void FileToHtml(String sourceFile, String htmlFile) {
File SourceFile = new File(sourceFile);
File HtmlFile = new File(htmlFile);
/*
* 转换成pdf文件
* 项目执行需要启动OpenOffice服务,在系统命令窗口执行命令。
*
cd C:Program Files (x86)OpenOffice.org 4program
*
soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard
*/
if(SourceFile.exists()) {
if(!HtmlFile.exists()) {
OpenOfficeConnection connection = new SocketOpenOfficeConnection(8100);
try {
connection.connect();
DocumentConverter converter = new OpenOfficeDocumentConverter(connection);
converter.convert(SourceFile, HtmlFile);
HtmlFile.createNewFile();
connection.disconnect();
System.out.println("第二步:转换为HTML格式
路径" + HtmlFile.getPath());
} catch (java.net.ConnectException e) {
//} catch (Exception e) {
e.printStackTrace();
System.out.println("OpenOffice服务未启动");
try {
throw e;
} catch (ConnectException e1) {
e1.printStackTrace();
}
} catch (com.artofsolving.jodconverter.openoffice.connection.OpenOfficeException e) {
e.printStackTrace();
System.out.println("读取文件失败");
throw e;
} catch (Exception e){
e.printStackTrace();
try {
throw e;
} catch (Exception e1) {
e1.printStackTrace();
}
}
} else {
System.out.println("已转换为HTML,无需再次转换");
}
} else {
System.out.println("要转换的文件不存在");
}
}
public static void main(String[] args) {
FileToHtml("F:\ceshi.xlsx", "F:\ceshi1.html");
}
}
PS:OpenOffice会自动识别Office版本,比如doc和docx以及xls和xlsx。
先告诉大家工具下载和使用情况,下篇会结合web工程给大家演示完整的功能,如有问题请留言告知,我们不止会New!
最后
以上就是幸福万宝路为你收集整理的Java利用OpenOffice进行将word,excel转化成html解析到界面(上)1.OpenOffice3.启动OpenOffice服务4.工具类的全部内容,希望文章能够帮你解决Java利用OpenOffice进行将word,excel转化成html解析到界面(上)1.OpenOffice3.启动OpenOffice服务4.工具类所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复