java office 转 html

java office 转 html
用 jacob jar 进行转换
最新 版本可到官方下   http://sourceforge.net/projects/jacob-project/
里面有 jacob.jar  和 相应的 jacob-1.15-M4-x86.dll
jar包 放到项目中  dll 分别放到 java 的jdk/bin和 jdk/jre/lib/ext和C:\WINDOWS\system32 目录下  保持版本一致
 
一下为实现代码。

package com.dsit.pysf.util;

/**
 * 〈p〉Title:Word文档转html类〈/p〉
 * 〈p〉Description: 〈/p〉
 * 〈p〉Copyright:() 2011〈/p〉
 * @author Sarsea
 * @version 1.0
 */
import java.io.File;

import com.jacob.com.*;
import com.jacob.activeX.*;

public class OfficetoHtml {
 /**
  * word文档转换html函数
  *
  * @param docfile
  *            word文档的绝对路径加文件名(包含扩展名)
  * @param htmlfile
  *            转换后的html文件绝对路径和文件名(不含扩展名)
  */
 public static void wordTohtml(String docfile, String htmlfile) {
  System.out.println("begin :"+docfile);
  if (docfile.substring(docfile.lastIndexOf('.') + 1).indexOf("doc") < 0) {
   System.out.println("OfficetoHtml.wordTohtml : 不是word文档");
   return;
  }
  ActiveXComponent app = null;
  try {
   app = new ActiveXComponent("Word.Application"); // 启动word
   app.setProperty("Visible", new Variant(false));
   // 设置word不可见
   Dispatch docs = app.getProperty("Documents").toDispatch();
   Dispatch doc = Dispatch.invoke(
     docs,
     "Open",
     Dispatch.Method,
     new Object[] { docfile, new Variant(false),
       new Variant(true) }, new int[1]).toDispatch();
   // 打开word文件
   Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] {
     htmlfile, new Variant(8) }, new int[1]);
   // 作为html格式保存到临时文件
   Variant f = new Variant(false);
   Dispatch.call(doc, "Close", f);
  } catch (Exception e) {
   e.printStackTrace();
  } finally {
   if (app != null)
    app.invoke("Quit", new Variant[] {});
  }
 }

 /**
  * word文档转换txt函数
  *
  * @param docfile
  *            word文档的绝对路径加文件名(包含扩展名)
  * @param txtfile
  *            转换后的html文件绝对路径和文件名(不含扩展名)
  */
 public static void wordTotxt(String docfile, String txtfile) {
  if (docfile.substring(docfile.lastIndexOf('.') + 1).indexOf("doc") < 0) {
   System.out.println("OfficetoHtml.wordTotxt : 不是word文档");
   return;
  }
  ActiveXComponent app = null;
  try {
   app = new ActiveXComponent("Word.Application"); // 启动word
   app.setProperty("Visible", new Variant(false));
   // 设置word不可见
   Dispatch docs = app.getProperty("Documents").toDispatch();
   Dispatch doc = Dispatch.invoke(
     docs,
     "Open",
     Dispatch.Method,
     new Object[] { docfile, new Variant(false),
       new Variant(true) }, new int[1]).toDispatch();
   // 打开word文件
   Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] {
     txtfile, new Variant(7) }, new int[1]);
   // 作为html格式保存到临时文件
   Variant f = new Variant(false);
   Dispatch.call(doc, "Close", f);
  } catch (Exception e) {
   e.printStackTrace();
  } finally {
   if (app != null)
    app.invoke("Quit", new Variant[] {});
  }
 }

 /**
  * excel文档转换函数
  *
  * @param xlsfile
  *            excel文档的绝对路径加文件名(包含扩展名)
  * @param htmlfile
  *            转换后的html文件绝对路径和文件名(不含扩展名)
  */
 public static void excelTohtml(String xlsfile, String htmlfile) {
  if (xlsfile.substring(xlsfile.lastIndexOf('.') + 1).indexOf("xls") < 0) {
   System.out.println("OfficetoHtml.excelTohtml : 不是excel文档");
   return;
  }
  ActiveXComponent app = null;
  try {
   app = new ActiveXComponent("Excel.Application"); // 启动excel
   app.setProperty("Visible", new Variant(false));
   // 设置word不可见
   Dispatch docs = app.getProperty("Workbooks").toDispatch();
   Dispatch doc = Dispatch.invoke(
     docs,
     "Open",
     Dispatch.Method,
     new Object[] { xlsfile, new Variant(false),
       new Variant(true) }, new int[1]).toDispatch();
   // 打开word文件
   Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] {
     htmlfile, new Variant(44) }, new int[1]);
   // 作为html格式保存到临时文件
   Variant f = new Variant(false);
   Dispatch.call(doc, "Close", f);
  } catch (Exception e) {
   e.printStackTrace();
  } finally {
   if (app != null)
    app.invoke("Quit", new Variant[] {});
  }
 }

 public static void main(String[] strs) {
  OfficetoHtml
    .wordTohtml(
      "d:/a.docx",
      "d:/a.docx.html");
  // File f=new File("C:\\Program Files\\Apache Software
  // Foundation\\Tomcat 5.5\\webapps\\gzpysf\\a.htm");
  // f.delete();
  

 }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 您可以使用Java中的许多库来将HTML换为其他格式,例如文本或PDF。 以下是一些常用的Java库: 1. Jsoup:这是一个Java库,用于解析HTML和XML文档,并提供API来处理它们。您可以使用Jsoup来将HTML换为纯文本或Markdown。 2. Flying Saucer:这是一个Java库,用于将HTML和CSS换为PDF。 Flying Saucer还提供了一个基于Swing的视图器,可以将HTML呈现为图形用户界面。 3. Apache PDFBox:这是一个Java库,用于创建和处理PDF文档。您可以使用PDFBox将HTML换为PDF。 4. iText:这是一个Java库,用于创建和处理PDF文档。与PDFBox类似,您可以使用iText将HTML换为PDF。 这些库都提供了丰富的文档和API,您可以根据自己的需求选择其中一个来进行HTML换。 ### 回答2: Java可以通过一些库或工具来实现将HTML换为其他形式的文本或数据。 首先,可以使用Jsoup库来解析HTML并提取所需信息。这个库可以通过解析HTML标记、选择元素和提取文本等功能来对HTML进行操作。通过使用Jsoup,可以将HTML换为纯文本或者提取出特定的标签数据。 另一种方法是使用开源框架Thymeleaf来进行HTML模板解析。Thymeleaf可以将HTML进行模板化处理,然后通过填充数据来生成最终的HTML。通过使用Thymeleaf,可以将HTML换为其他格式,如XML、PDF或纯文本。 此外,还可以使用Apache POI库来处理HTML换。Apache POI是一个用于创建和操作Microsoft Office文件的Java库。利用Apache POI中的相关API,可以将HTML换为Excel或Word文档。 总结起来,Java可以通过使用Jsoup、Thymeleaf或Apache POI等库来实现HTML换为其他形式的文本或数据。选用合适的库或工具取决于具体的需求和换目标。 ### 回答3: Java可以使用一些库和框架来将HTML化为其他格式。其中,最常用的库是Jsoup。Jsoup是一个JavaHTML解析器,可以处理HTML文档的解析、遍历以及修改。使用Jsoup,我们可以将HTML换为纯文本或者提取出HTML中的特定部分。 在使用Jsoup时,我们首先需要导入相应的依赖包。然后,通过指定HTML的URL或者文件路径,使用Jsoup的`connect()`方法来获取HTML的Document对象。接着,我们可以使用Jsoup提供的各种方法来解析、遍历和修改HTML文档。 如果要将HTML换为纯文本,我们可以使用Jsoup的`text()`方法来提取纯文本内容。该方法会移除HTML标签、注释以及其他特殊符号,只保留文本内容。 另外,如果需要提取HTML中的特定部分,可以使用Jsoup的选择器来定位特定的HTML元素。例如,如果要提取HTML中的所有标题,可以使用选择器`h1, h2, h3`。然后,通过遍历匹配到的元素,使用`text()`方法来获取纯文本标题内容。 除了Jsoup之外,还有其他一些Java库和框架可以用来处理HTML化,如HTMLCleaner、JTidy等。这些工具提供了更丰富的HTML解析和化功能,可以根据具体需求选择合适的工具。 总而言之,Java通过使用一些库和框架,如Jsoup,可以将HTML换为其他格式。无论是将HTML为纯文本,还是提取HTML中的特定部分,都可以通过解析、遍历和修改HTML文档来实现。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值