Doc4j pptx 查找并替换 table 行
Doc4j pptx find and replace table row
我有一个要求,我需要在运行时替换 Powerpoint 文件中的一些文本(Powerpoint 文件被用作带有一些 placeholders/tokes 例如 {{data1}}
的模板)在 table。
我参考了论坛上的其他链接并从 'docx4j' 开始,但我无法超越一点,而且文档也不是很清楚
List tableCells = clonedRow.getTc();
// Finally, insert the copy in the list
theTable.getTr().add(clonedRow); // standard Java list API
for (int ix = 0; ix < tableCells.size(); ix++)
{
CTTableCell tableCell = (CTTableCell)XmlUtils.unwrap(tableCells.get(ix));
// List<CTTextParagraph> value=tableCell.getTxBody().getP();
for (CTTextParagraph p : tableCell.getTxBody().getP()) {
Text text = (Text) ((JAXBElement) p).getValue();
}
SlidePart 扩展了 JaxbXmlPart,它包含:
public void variableReplace(java.util.Map<String, String> mappings)
如果你想使用变量替换,你的变量应该是这样的:${key1}, ${key2}
有关示例,请参阅 https://github.com/plutext/docx4j/blob/master/src/samples/docx4j/org/docx4j/samples/VariableReplace.java 那是针对 docx 的;你只需要将它应用到你的 SlidePart。
我有一个要求,我需要在运行时替换 Powerpoint 文件中的一些文本(Powerpoint 文件被用作带有一些 placeholders/tokes 例如 {{data1}}
的模板)在 table。
我参考了论坛上的其他链接并从 'docx4j' 开始,但我无法超越一点,而且文档也不是很清楚
List tableCells = clonedRow.getTc();
// Finally, insert the copy in the list
theTable.getTr().add(clonedRow); // standard Java list API
for (int ix = 0; ix < tableCells.size(); ix++)
{
CTTableCell tableCell = (CTTableCell)XmlUtils.unwrap(tableCells.get(ix));
// List<CTTextParagraph> value=tableCell.getTxBody().getP();
for (CTTextParagraph p : tableCell.getTxBody().getP()) {
Text text = (Text) ((JAXBElement) p).getValue();
}
SlidePart 扩展了 JaxbXmlPart,它包含:
public void variableReplace(java.util.Map<String, String> mappings)
如果你想使用变量替换,你的变量应该是这样的:${key1}, ${key2}
有关示例,请参阅 https://github.com/plutext/docx4j/blob/master/src/samples/docx4j/org/docx4j/samples/VariableReplace.java 那是针对 docx 的;你只需要将它应用到你的 SlidePart。