//替换表格的内容
/**
* 替换表格中的指定文字
*/
List<XWPFTable> tables = document.getTables();
for (XWPFTable table : tables) {
List<XWPFTableRow> rows = table.getRows();
for (XWPFTableRow row : rows) {
List<XWPFTableCell> cells = row.getTableCells();
for (XWPFTableCell cell : cells) {
String text = cell.getText();
if(text!=null){
for(Map.Entry<String, Object> entry:map.entrySet()){
String key = "${"+entry.getKey()+"}";
String value = entry.getValue()!=null?entry.getValue().toString():"";
//此处用\n进行换行
if(text.equals(key)){
if(value.indexOf("\n")!=-1){
//删除原单元格值
cell.removeParagraph(0);
//上面删除,此处新添加一个
XWPFParagraph xwpfParagraph1 = cell.addParagraph();
//如果是在原来的基础上进行拼接则用如下,并循环这个list即可
//List<XWPFParagraph> paragraphs1 = cell.getParagraphs();
String[] split = value.split("\n");
// xwpfParagraph.setAlignment(ParagraphAlignment.LEFT);//需要设置,否则中文换行会很生硬很难看
for (String s : split) {
XWPFRun run = xwpfParagraph1.createRun();//对某个段落设置格式
run.setText(s.trim());
run.addBreak();//换行
}
}else {
//删除原单元格值
cell.removeParagraph(0);
//设置新单元格的值
cell.setText(value);
}
}
}
}
}
}
}
本文介绍了一种在Word文档中批量替换表格内特定文字的方法,通过遍历表格的每一行每一单元格,查找并替换预定义的占位符,支持多行文本的智能处理,确保文档的准确性和美观性。
2600





