[JAVA]: Jacob 转换Word,Excel为HTML

一、了解Jacob
项目开发过程中,需求涉及到了各种文档转换为HTML或者网页易显示格式,现在将实现方式整理如下: 一、了解Jacob 先了解一下概念,JACOB 就是 JAVA-COM Bridge的缩写,提供自动化的访问com的功能,也是通过JNI功能访问windows平台下的com组件或者win32系统库的。这是一个开始于1999年的开源项目的成果,有很多使用者对该项目进行了修改,做出了自己的贡献

二、Jacob安装
1、我们解开下载的jacob_1.9.zip,在文件夹中找到jacob.dll和jacob.jar两个文件 2、将压缩包解压后,Jacob.jar添加到Libraries中; 3、将Jacob.dll放至“WINDOWS\SYSTEM32”下面。 需要注意的是: 【使用IDE启动Web服务器时,系统读取不到Jacob.dll,例如用MyEclipse启动Tomcat,就需要将dll文件copy到(经本人实践,发现此处应为JDK,不然会有问题哦)安装目录的“jre\bin”下面。最后需要关闭MyEclipse,再重启。 一般系统没有加载到Jacob.dll文件时,报错信息为:“java.lang.UnsatisfiedLinkError: no jacob in java.library.path”】

三、Excel转HTML。(已测)

package tools.jacob;

import java.io.File;
import java.io.IOException;

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

/**  
 * @author Jarvis H  
 * @version 2016-10-16 PM 09:28  
 * Describe
 */  
public class JacobExcelToHtm {  

    public static final int EXCEL_HTML = 44;   
    public static final int WORD_HTML = 8;   

    public JacobExcelToHtm() {  
        // TODO Auto-generated constructor stub  
    }  

    public static 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 sheet = Dispatch.invoke(excel, "sheet(0)", arg2, arg3, arg4)  
                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[] {});  
            }  
        }  


     public static void main(String[] argv) {    
        method1();  
//      method2();  
    }   

     //测试excelToHtml方法  一直有问题 可能.dll文件问题  
     public static void method1(){  
         System.out.println(System.getProperty("java.library.path"));
         File excelFile = new File("H:\\jacob-test\\excelToHtml\\exportExcel001.xlsx");  
            File htmlFile = new File("H:\\jacob-test\\excelToHtml\\exportExcel001.html");  
            if(!excelFile.exists()){  
                try {  
                    File.createTempFile("测试Excel", ".xlsx", new File("H:\\"));  
                } catch (IOException e) {  
                    // TODO Auto-generated catch block  
                    e.printStackTrace();  
                }  
            }  
            if(!htmlFile.exists()){  
                try {  
                    File.createTempFile("测试Excel", ".html", new File("d:\\"));  
                } catch (IOException e) {  
                    // TODO Auto-generated catch block  
                    e.printStackTrace();  
                }  
            }  
            System.out.println("---->method1");  
            System.out.println(excelFile.getAbsolutePath());  
            System.out.println(htmlFile.getAbsolutePath());  
            excelToHtml(excelFile.getAbsolutePath(), htmlFile.getAbsolutePath());  
     }  


}  

四、使用Jacob转换Word,Excel为HTML (转,未测)
传送门:Jacob转换Word,Excel为HTML

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值