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

wumolin wumolin 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
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全部替换。现在执行总是报错,只能修改一部分

...全文

相关推荐

评论 4
收藏 已收藏
分享
返回顶部
wumolin
Java SE 62,621 成员 307,251 内容