gpt4 book ai didi

java - 如何在 DOCX 中使用 POI 从单元格顶部写入

转载 作者:行者123 更新时间:2023-12-02 03:45:51 25 4
gpt4 key购买 nike

我正在阅读两个 docx 文件,并将第一个文件的表格单元格中的文本替换为第二个文件中的文本。要替换的单元格中有一个标记([#indicator#])。文本将写入表格的单元格中,其中确实存在标记。我的问题是,写入后单元格的开头总是有一些空白区域。图中“Rechnerische Ergebnisse:”字样上方empty space at top 。如何在单元格的开头写入或删除空格?这是代码:

private void insertText(final XWPFDocument docxErsetzt) throws FileNotFoundException, IOException {
FileInputStream fis = new FileInputStream("src\\main\\resources\\WordTemplate\\text.docx");
XWPFDocument textInhalt = new XWPFDocument(fis);
List<XWPFParagraph> paragraphsInhat = textInhalt.getParagraphs();
List<XWPFTable> table = docxErsetzt.getTables();
for (XWPFTable xwpfTable : table) {
List<XWPFTableRow> row = xwpfTable.getRows();
for (XWPFTableRow xwpfTableRow : row) {
List<XWPFTableCell> cell = xwpfTableRow.getTableCells();
for (XWPFTableCell c : cell) {
if (c.getText().contains("[#indicator#]")) {
// remove [#indicator#]
c.removeParagraph(0);
for (XWPFParagraph para : paragraphsInhat) {
XWPFRun newRun = c.addParagraph().createRun();
newRun.removeBreak();
newRun.removeCarriageReturn();
newRun.setText(para.getText(), 0);

for (XWPFRun run : para.getRuns()) {
String textInRun = run.getText(0);
if (textInRun == null || textInRun.isEmpty()) {
continue;
}
newRun.setFontSize(run.getFontSize());
newRun.setFontFamily(run.getFontFamily());
newRun.setBold(run.isBold());
newRun.setItalic(run.isItalic());
newRun.setStrikeThrough(run.isStrikeThrough());
newRun.setUnderline(run.getUnderline());
newRun.setColor(run.getColor());
}
}
}
}
}
}
docxErsetzt.write(new FileOutputStream(OUTPUTPATH + "textreplaced.docx"));
docxErsetzt.close();
textInhalt.close();
}

最佳答案

一个XWPFParagraph由一个或多个XWPFRun实例组成,不要删除该段落,尝试通过这种方式更改其内容:

public void changeText(XWPFParagraph p, String newText) {
List<XWPFRun> runs = p.getRuns();
for(int i = runs.size() - 1; i > 0; i--) {
p.removeRun(i);
}
XWPFRun run = runs.get(0);
run.setText(newText, 0);
}

关于java - 如何在 DOCX 中使用 POI 从单元格顶部写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36305361/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com