各位帮忙看看java修改Word超链接

wumolin 2009-10-29 10:48:32
import com.jacob.com.*;
import com.jacob.activeX.*;

public class ReadWord {

public static void main(String[] args) {
ActiveXComponent app = new ActiveXComponent("Word.Application"); //启动word
String inFile = "C:\\test.doc"; //要替换的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[] { inFile, new Variant(false),new Variant(false) }, new int[1]).toDispatch(); //打开word文件,注意这里第三个参数要设为false,这个参数表示是否以只读方式打开,因为我们要保存原文件,所以以可写方式打开
Dispatch selection=app.getProperty("Selection").toDispatch();//获得对Selection组件
Dispatch.call(selection, "HomeKey", new Variant(6));//移到开头
Dispatch Hyperlinks = Dispatch.get(doc, "Hyperlinks").toDispatch();
int nHyperlink = Dispatch.get(Hyperlinks, "count").toInt();
System.out.println("hyper="+nHyperlink);
for (int i = 0; i < nHyperlink; i++) {
Dispatch hyperlink=Dispatch.invoke(Hyperlinks, "item",Dispatch.Method,new Object[]{new Integer(i+1)},new int[1]).toDispatch();
Dispatch.put(hyperlink, "TextToDisplay", "wml");
Dispatch.call(hyperlink, "delete");

}
Dispatch.call(doc, "Save"); //保存
Dispatch.call(doc,"Close",new Variant(false));
} catch (Exception e) {
e.printStackTrace();
} finally {app.invoke("Quit", new Variant[]{});
app.safeRelease();
}
}
}

我想把所有的doc文件中的超链接获取,然后用wml全部替换。现在执行总是报错,只能修改一部分

...全文
141 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
amdgaming 2009-10-30
  • 打赏
  • 举报
回复
这个还真不会。。
liruanjianyiyuan 2009-10-30
  • 打赏
  • 举报
回复
顶下
zl3450341 2009-10-29
  • 打赏
  • 举报
回复
帮顶下
goodmrning 2009-10-29
  • 打赏
  • 举报
回复
mark!

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧