JeeStudy 发表于 2017-3-31 13:54:02

JAVA 把word等office文档转换成HTML文档

JAVA 把word等office文档转换成HTML文档

1. 下载Jacob组件Description    JACOB is a JAVA-COM Bridge that allows you to call COM Automation components from Java.     It uses JNI to make native calls to the COM libraries.     JACOB runs on x86 and x64 environments supporting 32 bit and 64 bit JVMs
2.解压可以得到jar及dll文件,把jar放到类路径下,把dll放到环境变量或者jdk安装目录的bin文件夹下
注意:jacob的jdk版本(可以在jar文件中查看当前编译的版本)

附:TransformFiletoHtml.java
import java.io.File;

import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;

public class TransformFiletoHtml {
      int WORD_HTML = 8;
      int WORD_TXT = 7;
      int EXCEL_HTML = 44;

      /**
         * WORD转HTML
         *
         * @param docfile
         *            WORD文件全路径
         * @param htmlfile
         *            转换后HTML存放路径
         */
      public void wordToHtml(String docfile, String htmlfile) {
                ActiveXComponent app = new ActiveXComponent("Word.Application"); // 启动word
                try {
                        app.setProperty("Visible", new Variant(false));
                        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).toDispatch();
                        Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] { htmlfile, new Variant(WORD_HTML) }, new int);
                        Variant f = new Variant(false);
                        Dispatch.call(doc, "Close", f);
                } catch (Exception e) {
                        e.printStackTrace();
                } finally {
                        app.invoke("Quit", new Variant[] {});
                }
      }

      /**
         * EXCEL转HTML
         *
         * @param xlsfile
         *            EXCEL文件全路径
         * @param htmlfile
         *            转换后HTML存放路径
         */
      public void excelToHtml(String xlsfile, String htmlfile) {
                ActiveXComponent app = new ActiveXComponent("Excel.Application"); // 启动excel
                try {
                        app.setProperty("Visible", new Variant(false));
                        Dispatch excels = app.getProperty("Workbooks").toDispatch();
                        Dispatch excel = Dispatch.invoke(excels, "Open", Dispatch.Method, new Object[] { xlsfile, new Variant(false), new Variant(true) }, new int).toDispatch();
                        Dispatch.invoke(excel, "SaveAs", Dispatch.Method, new Object[] { htmlfile, new Variant(EXCEL_HTML) }, new int);
                        Variant f = new Variant(false);
                        Dispatch.call(excel, "Close", f);
                } catch (Exception e) {
                        e.printStackTrace();
                } finally {
                        app.invoke("Quit", new Variant[] {});
                }
      }

      /**
         * /删除指定文件夹
         *
         * @param folderPath
         *            文件夹全路径
         * @param htmlfile
         *            转换后HTML存放路径
         */
      public void delFolder(String folderPath) {
                try {
                        delAllFile(folderPath); // 删除完里面所有内容
                        String filePath = folderPath;
                        filePath = filePath.toString();
                        java.io.File myFilePath = new java.io.File(filePath);
                        myFilePath.delete(); // 删除空文件夹
                } catch (Exception e) {
                        e.printStackTrace();
                }
      }

      /**
         * /删除指定文件夹下所有文件
         *
         * @param path
         *            文件全路径
         */
      public boolean delAllFile(String path) {
                boolean flag = false;
                File file = new File(path);
                if (!file.exists()) {
                        return flag;
                }
                if (!file.isDirectory()) {
                        return flag;
                }
                String[] tempList = file.list();
                File temp = null;
                for (int i = 0; i < tempList.length; i++) {
                        if (path.endsWith(File.separator)) {
                              temp = new File(path + tempList);
                        } else {
                              temp = new File(path + File.separator + tempList);
                        }
                        if (temp.isFile()) {
                              temp.delete();
                        }
                        if (temp.isDirectory()) {
                              delAllFile(path + "/" + tempList);// 先删除文件夹里面的文件
                              delFolder(path + "/" + tempList);// 再删除空文件夹
                              flag = true;
                        }
                }
                return flag;
      }

      public static void main(String[] args) {
                TransformFiletoHtml trans = new TransformFiletoHtml();
                // trans.wordToHtml("E:\\a.doc", "e:\\a.html");
                // trans.wordToHtml("E:\\b.docx", "e:\\b.html");
                trans.excelToHtml("E:\\c.xlsx", "E:\\c.html");
      }
}




页: [1]
查看完整版本: JAVA 把word等office文档转换成HTML文档