private void replaceInParagraph(XWPFParagraph paragraph, Map<String, String> map) { for (Map.Entry<String, String> entry : map.entrySet()) { String searchText = "{" + entry.getKey() + "}"; if (StringUtils.isEmpty(paragraph.getText()) == false && StringUtils.contains(paragraph.getText(), searchText)) { replaceInParagraph(paragraph, searchText, entry.getValue() != null ? entry.getValue() : ""); } } }
private void replaceInWholeDocument(XWPFDocument document, Map<String, String> map) { List<XWPFParagraph> paragraphs = document.getParagraphs(); for (XWPFParagraph paragraph : paragraphs) { if (StringUtils.isEmpty(paragraph.getText()) == false) { replaceInParagraph(paragraph, map); } } }
private void replaceSumDataInTable(final XWPFTable posTbl, final RechnungDO invoice) { Map<String, String> map = new HashMap<>(); map.put("Zwischensumme", formatBigDecimal(invoice.getNetSum())); map.put("MwSt", formatBigDecimal(invoice.getVatAmountSum())); map.put("Gesamtbetrag", formatBigDecimal(invoice.getGrossSum())); int tableRowSize = posTbl.getRows().size(); for (int startSumRow = tableRowSize - 2; startSumRow < tableRowSize; startSumRow++) { for (XWPFTableCell cell : posTbl.getRow(startSumRow).getTableCells()) { for (XWPFParagraph cellParagraph : cell.getParagraphs()) { replaceInParagraph(cellParagraph, map); } } } }
private void replaceInTable(XWPFDocument document, String searchText, String replacement) { for (XWPFTable tbl : document.getTables()) { for (XWPFTableRow row : tbl.getRows()) { for (XWPFTableCell cell : row.getTableCells()) { for (XWPFParagraph paragraph : cell.getParagraphs()) { replaceInParagraph(paragraph, searchText, replacement); } } } } }
private void replacePosDataInTable(final XWPFTable posTbl, final RechnungDO invoice) { int rowCount = 1; for (RechnungsPositionDO position : invoice.getPositionen()) { String identifier = "{" + position.getNumber() + "}"; Map<String, String> map = new HashMap<>(); map.put(identifier + "Posnummer", String.valueOf(position.getNumber())); map.put(identifier + "Text", position.getText()); map.put(identifier + "Leistungszeitraum", getPeriodOfPerformance(position, invoice)); map.put(identifier + "Menge", formatBigDecimal(position.getMenge())); map.put(identifier + "Einzelpreis", formatBigDecimal(position.getEinzelNetto())); map.put(identifier + "Betrag", formatBigDecimal(position.getNetSum())); for (XWPFTableCell cell : posTbl.getRow(rowCount).getTableCells()) { for (XWPFParagraph cellParagraph : cell.getParagraphs()) { replaceInParagraph(cellParagraph, map); } } rowCount++; } }
private XWPFTable generatePosTableRows(final XWPFDocument templateDocument, final List<RechnungsPositionDO> positionen) { XWPFTable posTbl = null; for (XWPFTable tbl : templateDocument.getTables()) { if (tbl.getRow(0).getCell(0).getText().contains("Beschreibung")) { posTbl = tbl; } } for (int i = 2; i <= positionen.size(); i++) { copyTableRow(posTbl, i); } int rowCount = 1; for (RechnungsPositionDO position : positionen) { for (XWPFTableCell cell : posTbl.getRow(rowCount).getTableCells()) { for (XWPFParagraph cellParagraph : cell.getParagraphs()) { replaceInParagraph(cellParagraph, "id", String.valueOf(position.getNumber())); } } rowCount++; } return posTbl; }