您的位置:首页 > Web前端 > HTML

jacob包进行word转html,excel转html

2009-01-08 11:11 393 查看
最近要用到把word文档转成html形式。研究了一下

1.下载jacob包(我用的是1.9),包含jacob.jar,jacob.dll。在工程中引用jacob.jar,jacob.dll放在 系统盘:/windows/system32

附带jacob_1.9下载

2.代码

/*
 * Jacob.java      2009-01-09
 *
 * Powered by HELEN   
 * All rights reserved
 */
import java.io.File;
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.ComThread;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
/**
 * <code>Jacob</code>jacob包进行word转html,excel转html
 *
 * @author Helen
 * @version 2009-01-09
 * @see java.lang.Class
 * @since JDK1.6.0_03
 */
public class Jacob {
 public static void main(String[] args) throws Exception {
  wordtoHTML("E:/w.doc","E:/w.html");
  exceltoHTML("E:/b.xls","E:/b.html");
 }
 /**
  * <code>wordtoHTML</code>word转换成html
  * @param  excelFilename 要转换的word文件  htmlFilename  目标文件
  * @author Helen
  * @version 2009-01-06
  * @see java.lang.Class
  * @since JDK1.6.0_03
  */
 public static void wordtoHTML(String excelFilename, String htmlFilename) {
  ActiveXComponent app = new ActiveXComponent("Word.Application");// 查找word组件
   
    try {
     app.setProperty("Visible", new Variant(false));// 设置word不可见
     Dispatch docs = app.getProperty("Documents").toDispatch();
     Dispatch doc = Dispatch.invoke(
       docs,
       "Open",
       Dispatch.Method,
       new Object[] { excelFilename, new Variant(false),
         new Variant(true) }, new int[1]).toDispatch();// 打开word文件,注意这里第三个参数要设为true,这个参数表示是否以只读方式打开,因为我们不用保存原文件,所以以只读方式打开,如果你想进行读写,那么就得设为false。
     Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] {
       htmlFilename, new Variant(8) }, new int[1]);//作为html格式保存到目标文件(html-new Variant(8) txt-new Variant(2))
     Variant f = new Variant(false);
     Dispatch.call(doc, "Close", f); //关闭word文件
    } catch (Exception e) {
     e.printStackTrace();
    } finally {
     app.invoke("Quit", new Variant[] {});
    }
 }
 /**
  * <code>exceltoHTML</code>excel转换成html
  * @param  excelFilename 要转换的excel文件  htmlFilename  目标文件
  * @author Helen
  * @version 2009-01-06
  * @see java.lang.Class
  * @since JDK1.6.0_03
  */
 public static void exceltoHTML(String excelFilename, String htmlFilename)
    {
        ComThread.InitSTA();
        ActiveXComponent xl = new ActiveXComponent("Excel.Application");
       
        try
        {
            File fo = new File(htmlFilename);
            if (fo.exists()&&fo.canRead()){
                fo.delete();
            }           
            xl.setProperty("Visible", new Variant(false));
            Dispatch workbooks = xl.getProperty("Workbooks").toDispatch();
            Dispatch workbook = Dispatch.invoke(workbooks, "Open", Dispatch.Method, new Object[]
            {excelFilename, new Variant(false), new Variant(true) },// 是否以只读方式打开
                    new int[1]).toDispatch();

            Dispatch.invoke(workbook, "SaveAs", Dispatch.Method, new Object[]
            {htmlFilename, new Variant(44) }, new int[1]); // 44,45

            Dispatch.call((Dispatch) workbook, "Close", new Variant(false));

        } catch (Exception e)
        {
            e.printStackTrace();
        } finally
        {
            xl.invoke("Quit", new Variant[]
            {});
            ComThread.Release();
        }
    }
}

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息