设为首页收藏本站 JeeStudy企业开发官网①

JEE Study|JAVA EE|企业级开发学习网

 找回密码
 立即加入

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
查看: 2216|回复: 0
打印 上一主题 下一主题

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

[复制链接]

219

主题

221

帖子

1418

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1418

最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

跳转到指定楼层
楼主
发表于 2017-3-31 13:54:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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
[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[1]).toDispatch();
                        Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] { htmlfile, new Variant(WORD_HTML) }, new int[1]);
                        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[1]).toDispatch();
                        Dispatch.invoke(excel, "SaveAs", Dispatch.Method, new Object[] { htmlfile, new Variant(EXCEL_HTML) }, new int[1]);
                        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[i]);
                        } else {
                                temp = new File(path + File.separator + tempList[i]);
                        }
                        if (temp.isFile()) {
                                temp.delete();
                        }
                        if (temp.isDirectory()) {
                                delAllFile(path + "/" + tempList[i]);// 先删除文件夹里面的文件
                                delFolder(path + "/" + tempList[i]);// 再删除空文件夹
                                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");
        }
}





知识改变命运!

JAVA EE 学习     JAVA EE 资料
JEE Study:企业级开发学习网!
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

QQ|Archiver|手机版|小黑屋|JEE Study ( 京ICP备16036936   JeeStudy企业开发官网①

GMT+8, 2024-4-24 22:24 , Processed in 0.236449 second(s), 26 queries .

Powered by JeeStudy!

© 2008-2020 JEE Study 企业级开发学习网

快速回复 返回顶部 返回列表