java(word/ppt/excel)转换成HTML实现


[java]  view plain copy print ?
import com.jacob.activeX.ActiveXComponent;  
import com.jacob.com.*;  
  
public class OfficeToXML {  
  
    private final static OfficeToXML oOfficeToXML = new OfficeToXML();  
  
    public static OfficeToXML getInstance() {  
        return oOfficeToXML;  
    }  
  
    public OfficeToXML() {  
    }  
  
    public boolean WordtoHtml(String s, String s1) {  
        ComThread.InitSTA();  
        ActiveXComponent activexcomponent = new ActiveXComponent(  
                "Word.Application");  
        String s2 = s;  
        String s3 = s1;  
        boolean flag = false;  
        try {  
            activexcomponent.setProperty("Visible", new Variant(false));  
            Dispatch dispatch = activexcomponent.getProperty("Documents").toDispatch();  
            Dispatch dispatch1 = Dispatch.invoke(dispatch, "Open", 1,  
                    new Object[] { s2, new Variant(false), new Variant(true) },  
                    new int[1]).toDispatch();  
            Dispatch.invoke(dispatch1, "SaveAs", 1, new Object[] { s3,  
                    new Variant(8) }, new int[1]);  
            Variant variant = new Variant(false);  
            Dispatch.call(dispatch1, "Close", variant);  
            flag = true;  
        } catch (Exception exception) {  
            exception.printStackTrace();  
        } finally {  
            activexcomponent.invoke("Quit", new Variant[0]);  
            ComThread.Release();  
            ComThread.quitMainSTA();  
        }  
        return flag;  
    }  
  
    public boolean PPttoHtml(String s, String s1) {  
        ComThread.InitSTA();  
        ActiveXComponent activexcomponent = new ActiveXComponent(  
                "PowerPoint.Application");  
        String s2 = s;  
        String s3 = s1;  
        boolean flag = false;  
        try {  
            Dispatch dispatch = activexcomponent.getProperty("Presentations")  
                    .toDispatch();  
            Dispatch dispatch1 = Dispatch.call(dispatch, "Open", s2,  
                    new Variant(-1), new Variant(-1), new Variant(0))  
                    .toDispatch();  
            Dispatch.call(dispatch1, "SaveAs", s3, new Variant(12));  
            Variant variant = new Variant(-1);  
            Dispatch.call(dispatch1, "Close");  
            flag = true;  
        } catch (Exception exception) {  
            System.out.println("|||" + exception.toString());  
        } finally {  
            activexcomponent.invoke("Quit", new Variant[0]);  
            ComThread.Release();  
            ComThread.quitMainSTA();  
        }  
        return flag;  
    }  
  
    public boolean ExceltoHtml(String s, String s1) {  
         ComThread.InitSTA();  
         ActiveXComponent activexcomponent = new  
         ActiveXComponent("Excel.Application");  
         String s2 = s;  
         String s3 = s1;  
         boolean flag = false;  
         try  
         {  
         activexcomponent.setProperty("Visible", new Variant(false));  
         Dispatch dispatch =  
         activexcomponent.getProperty("Workbooks").toDispatch();  
         Dispatch dispatch1 = Dispatch.invoke(dispatch, "Open", 1, new  
         Object[] {  
         s2, new Variant(false), new Variant(true)  
         }, new int[1]).toDispatch();  
         Dispatch.call(dispatch1, "SaveAs", s3, new Variant(44));  
         Variant variant = new Variant(false);  
         Dispatch.call(dispatch1, "Close", variant);  
         flag = true;  
         }  
         catch(Exception exception)  
         {  
         System.out.println("|||" + exception.toString());  
         }  
         finally  
         {  
         activexcomponent.invoke("Quit", new Variant[0]);  
         ComThread.Release();  
         ComThread.quitMainSTA();  
         }  
         return flag;  
    }  
  
    public static void main(String args[]) {  
        OfficeToXML otx = OfficeToXML.getInstance();  
        boolean flag1 = otx.PPttoHtml("e:/test/test3.pptx", "e:/test/test3.html");  
        if(flag1){  
            System.out.println("PPT文件转换成HTML成功!");  
        }else{  
            System.out.println("PPT文件转换成HTML失败!");  
        }  
        boolean flag2 = otx.WordtoHtml("e:/test/test2.docx", "e:/test/test2.html");  
        if(flag2){  
            System.out.println("WORD文件转换成HTML成功!");  
        }else{  
            System.out.println("WORD文件转换成HTML失败!");  
        }  
        boolean flag3 = otx.ExceltoHtml("e:/test/test1.xlsx", "e:/test/test1.html");  
        if(flag3){  
            System.out.println("EXCEL文件转换成HTML成功!");  
        }else{  
            System.out.println("EXCEL文件转换成HTML失败!");  
        }  
    }  
}  

运行条件:

1.JDK1.6

2.jacob.jar和jacob.dll

  1) 把jacob.dll在 ..\Java\jdk1.6.0_10\bin、..\Java\jdk1.6.0_10\jre\bin、C:\WINDOWS\system32    目录下各放一份
  2) 把jacob.jar放入 项目的lib包下,并且在“java构建路径”中也要加载此jar包。
  3) 运行项目即可编译通过.

注:jacob.jar以及jacob.dll版本一定要和jdk版本相匹配,否则后果自负


————————————————
版权声明:本文为CSDN博主「Yang_Frank」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yangzc0425/article/details/18362327

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值