我创建了一个 MS Word 文档,其中包含一些我想在运行时用从数据库中获取的一些文本替换的书签。
最初这个应用程序使用 OLE 自动化 (Word) 来做这些事情,但后来我决定寻找一些替代方案。
我已经下载并使用了 Open Office SDK(最新版本)并实现了一个简单的项目。
// Opens a MS Word document
XComponent document = OpenDocument("Test.docx", "_blank", true);
XNameAccess xna = ((XBookmarksSupplier) document).getBookmarks();
string[] documentBookMarkKeys = xna.getElementNames();
if (documentBookMarkKeys.Length > 0) {
uno.Any currentBookmark = xna.getByName("bookmark1");
XTextContent bookmarkContent = currentBookmark.Value as XTextContent;
if (bookmarkContent != null) {
XTextRange xFound = bookmarkContent.getAnchor();
xFound.setString("Some text here!");
}
}
我整理的这个简单的例程试图抓取在 Internet 上找到的一些代码似乎工作正常,但它并没有保留这些书签的格式。我不知道是否有任何其他替代方案可以达到相同的结果。难道我做错了什么?
我正在通过 UNO 使用 Open Office 3.4。