关于java使用jacob调用word,ppt,excel等的转化为html的问题
2015-07-07 10:08
966 查看
使用jacob时,把dll放到window/system32下就成,不需要注册
1、如果出现下面的错误
com.jacob.com.ComFailException: A COM exception has been encountered:
At Invoke of: Version
Description: An unknown COM error has occured.
表示dll的版本不对,换成最新版本即可。
2、如果出现下面的错误
no jacob in java.library.path
java.lang.UnsatisfiedLinkError: no jacob in java.library.path
表示把dll放到path下即可,设置path或是放到window/system32下
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.*;
public class OfficeToHtml {
private final static OfficeToHtml oOfficeToHtml = new OfficeToHtml();
public static OfficeToHtml getInstance() {
return oOfficeToHtml;
}
public OfficeToHtml() {
}
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[]) {
OfficeToHtml otx = OfficeToHtml.getInstance();
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失败!");
}
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 flag1 = otx.PPttoHtml("e:/test/test4.ppt", "e:/test/test4.html");
if(flag1){
System.out.println("PPT文件转换成HTML成功!");
}else{
System.out.println("PPT文件转换成HTML失败!");
}
}
}
1、如果出现下面的错误
com.jacob.com.ComFailException: A COM exception has been encountered:
At Invoke of: Version
Description: An unknown COM error has occured.
表示dll的版本不对,换成最新版本即可。
2、如果出现下面的错误
no jacob in java.library.path
java.lang.UnsatisfiedLinkError: no jacob in java.library.path
表示把dll放到path下即可,设置path或是放到window/system32下
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.*;
public class OfficeToHtml {
private final static OfficeToHtml oOfficeToHtml = new OfficeToHtml();
public static OfficeToHtml getInstance() {
return oOfficeToHtml;
}
public OfficeToHtml() {
}
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[]) {
OfficeToHtml otx = OfficeToHtml.getInstance();
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失败!");
}
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 flag1 = otx.PPttoHtml("e:/test/test4.ppt", "e:/test/test4.html");
if(flag1){
System.out.println("PPT文件转换成HTML成功!");
}else{
System.out.println("PPT文件转换成HTML失败!");
}
}
}
相关文章推荐
- 将16进制字符串转换为整数输出
- Java基础日记———IO流(上)
- java自带的MD5、SHA1算法演示
- Java 判断文件夹、文件是否存在、否则创建文件夹
- jdk的环境配置方法
- #笔记#圣思园 JavaWeb 第23讲——JavaBean
- Myeclipse SVN插件使用
- java异常处理
- Java实现 Base64、MD5、MAC、HMAC加密(转)
- java I/O学习
- Java - How Classpath works in Java
- 彻底搞懂Java ClassLoader
- eclipse中更改SVN账号的步骤
- MyEclipse下重新登录SVN
- 如何查看eclipse版本
- 【DB】【Spring】多数据源事物配置
- java 泛型学习笔记
- java swing开发毕业设计-进销存管理系统源代码下载
- 使用Spring Security Oauth2完成RESTful服务password认证的过程
- Java - Print打印示例