Java利用OpenOffice进行将word,excel转化成html解析到界面(上)

最近项目中遇到一个新需求,需要将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 4\program
         *  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!

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: 在 Java解析 Excel 文件通常需要使用第三方库。常用的有 Apache POI 和 Java Excel API。 Apache POI 是 Apache 基金会的开源项目,可以用来处理各种 Microsoft Office 格式的文件,包括 Excel。它提供了丰富的 API,可以方便地读取和写入 Excel 文件。 Java Excel API 是另一个用于处理 Excel 文件的开源库。它可以读取和写入 Excel 文件,并支持多种 Excel 文件格式,包括 Microsoft Office 和 OpenOffice。 使用这些库解析 Excel 文件的基本步骤如下: 1. 安装并导入所需的库。 2. 加载 Excel 文件。这可以通过使用库中提供的 API 来完。 3. 读取文件中的数据。这可以通过遍历文件中的行和列来完。每个单元格的数据可以使用库中提供的 API 来访问。 4. 关闭文件。这可以通过使用库中提供的 API 来完。 以下是使用 Apache POI 解析 Excel 文件的示例代码: ```java import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.FileInputStream; import java.io.InputStream; import java.util.Iterator; public class ExcelParser { public static void main(String[] args) throws Exception { // 加载 Excel 文件 InputStream inputStream = new FileInputStream("example.xlsx"); Workbook workbook = new XSSFWorkbook(inputStream); // 获 ### 回答2: 在Java解析Excel有多种方式,其中一种常用的方法是使用Apache POI库。Apache POI是一个流行的Java库,用于读取和写入Microsoft Office格式的文件,包括Excel文件。 首先,需要在Java项目中引入Apache POI的依赖。可以通过Maven或Gradle等构建工具来配置依赖项。接下来,需要创建一个Workbook对象来表示Excel文件,并使用该对象加载Excel文件。 然后,可以使用Workbook对象获取Sheet对象,表示Excel中的工作表。可以通过Sheet对象获取行数和列数,并遍历每个单元格来读取Excel的数据。 为了读取和处理Excel数据,可以使用Cell对象。可以通过Sheet对象的getRow方法获取行对象,再通过行对象的getCell方法获取单元格对象。然后,可以使用单元格对象的getStringCellValue、getNumericCellValue等方法来获取单元格的值。 另外,还可以使用POI的特定类,如DataFormatter,来格式化单元格的值。 最后,需要注意关闭Workbook对象和相关的IO操作。可以使用try-with-resources语句块来自动关闭资源。 综上所述,使用Java解析Excel需要借助Apache POI库,通过Workbook、Sheet和Cell对象来读取和处理Excel数据。通过熟悉POI的API和相关类的用法,可以轻松实现对Excel文件的解析。 ### 回答3: Java解析Excel可以通过使用Apache POI库来实现。Apache POI是一个开源的Java API,用于读取、写入和操作Microsoft Office文件。 首先,需要在项目中添加Apache POI的依赖。可以通过Maven或Gradle进行配置。 接下来,需要使用POIFSFileSystem类来创建一个输入流,将Excel文件加载到内存中。 然后,可以使用HSSFWorkbook类来表示整个工作簿,HSSFSheet类来表示工作表,HSSFRow类来表示行,HSSFCell类来表示单元格。 通过遍历每个工作表,每一行和每个单元格,可以访问Excel中的数据。可以使用getCell方法来获取特定单元格,并使用getStringCellValue或getNumericCellValue等方法来获取单元格中的数据。 如果需要处理特定格式的数据,例如日期或数字格式,可以使用DataFormatter类。 最后,记得在处理完Excel文件后关闭输入流。 以下是一个简单的示例代码,演示了如何使用Apache POI解析Excel文件: ```java import org.apache.poi.hssf.usermodel.*; import org.apache.poi.poifs.filesystem.POIFSFileSystem; import java.io.FileInputStream; import java.io.IOException; public class ExcelParser { public static void main(String[] args) { try { FileInputStream fileInputStream = new FileInputStream("path/to/excel/file.xls"); POIFSFileSystem poifsFileSystem = new POIFSFileSystem(fileInputStream); HSSFWorkbook workbook = new HSSFWorkbook(poifsFileSystem); HSSFSheet sheet = workbook.getSheetAt(0); for (int i = 0; i <= sheet.getLastRowNum(); i++) { HSSFRow row = sheet.getRow(i); for (int j = 0; j < row.getLastCellNum(); j++) { HSSFCell cell = row.getCell(j); String cellValue = cell.getStringCellValue(); System.out.println("Cell value: " + cellValue); } } workbook.close(); fileInputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` 以上就是使用Java解析Excel的简单方法。通过使用Apache POI库,可以轻松地读取和处理Excel文件中的数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值