0
我有Word文檔(這是基於DOCX和XML),我想找到一個表並以編程方式填充它。我正在使用Apache POI,XWPF API。在Apache POI中,是否有方法通過id來訪問XWPF元素?
有沒有辦法通過他們的ID訪問XWPF元素?
如何創建XWPF元素之間的唯一性,然後使用java進行更改?
感謝
我有Word文檔(這是基於DOCX和XML),我想找到一個表並以編程方式填充它。我正在使用Apache POI,XWPF API。在Apache POI中,是否有方法通過id來訪問XWPF元素?
有沒有辦法通過他們的ID訪問XWPF元素?
如何創建XWPF元素之間的唯一性,然後使用java進行更改?
感謝
我已經實現是找到替換功能(from here);
在我的模板docx文件中,我使用「id like texts」,__heading1__,__subjectname__,然後用下面的代碼替換它們。對於表格@ axel-richters解決方案可能是合適的。
private void findReplace(String a, String b, CustomXWPFDocument document){
for (XWPFParagraph p : document.getParagraphs()) {
List<XWPFRun> runs = p.getRuns();
if (runs != null) {
for (XWPFRun r : runs) {
String text = r.getText(0);
if (text != null && text.contains(a)) {
text = text.replace(a, b);
r.setText(text, 0);
}
}
}
}
}
從什麼'ID'你在說什麼?你將如何在Word中設置這些「ID」?在[Table Properties - Alt Text](https://support.office.com/zh-cn/article/Set-or-change-table-properties-3237de89-b287-4379)中,「Word」表可能具有「標題」 -8e0c-86d94873b2e0 #__ toc5)。這是否意味着? –
嗨阿克塞爾,是的AFAIK沒有身份證。但我想了解其他人如何使用它。替代文字實際上是一個很好的解決方案。但我很好奇其他人如何使用XWPF接口。 – ozkolonur
「Word」文檔中除了從上到下的出現以外,沒有一般的排序標準。因此,在一般情況下,遍歷所有'IBodyElement's,確定你得到了什麼'BodyElementType',然後用這個元素做你需要做的事情。在特殊情況下,要求必須清楚。例如,您可以替換佔位符文本或填寫表單字段,或者查找標題/書籤/標題/ alt-texts/...以確定元素。但是對於這個'Word'文檔的作者來說,這個要求也必須是清楚的,因爲他必須將這些東西寫入文檔中。 –