问题:Word中包含表格导出数据需要换行时不论是使用“\r\n”还是“^p”都无法实现 下面为解决代码: //Word表格内数据换行 //逐步获取表格内内容 //获取所有表格 List<XWPFTable> list2=docx.getXWPFDocument().getTables(); for(XWPFTable xwpfTable:list2){ //获取一个表格中的所有行 List<XWPFTableRow> xwpfTableRows = xwpfTable.getRows(); for(XWPFTableRow xwpfTableRow:xwpfTableRows){ //获取一行中的所有列 List<XWPFTableCell> xwpfTableCells = xwpfTableRow.getTableCells(); for(XWPFTableCell xwpfTableCell:xwpfTableCells){ //获取一格里的内容 List<XWPFParagraph> paragraphs = xwpfTableCell.getParagraphs(); for(XWPFParagraph xwpfParagraph:paragraphs){ List<XWPFRun> run1=xwpfParagraph.getRuns(); //根据内容替换换行符 for(XWPFRun r:run1){ String str=r.getText(0); //在原先文本中获取存在"\n"的段落 if (str.indexOf("\n") != -1) { //清空原先文本,使用换行后的新文本 r.setText("", 0); String[] split = str.split("\n"); //进行换行和缩进 if (split != null && split.length > 0) { for (int i = 0; i < split.length; i++) { if (i == 0) { r.setText(split[i].trim()); } else { // 换行 r.addBreak(); r.setText(split[i].trim()); } } } } } } } } }
原理:将表格内数据一一遍历,最终单格内容进行换行处理,前提是数据中有指定换行标识,比如数据中有“\n”标识