Java 处理.docx文档时表内换行符出现问题

Java 处理.docx文档时表内换行符出现问题,java,apache-poi,docx,Java,Apache Poi,Docx,下面的代码获取.docx文档的路径,遍历它并打印所有表中每个单元格的内容 public void parse(String path) throws IOException { FileInputStream fis = new FileInputStream(path); XWPFDocument ex = new XWPFDocument(fis); XWPFWordExtractor extractor = new XWPFWordExtractor(ex);

下面的代码获取.docx文档的路径,遍历它并打印所有表中每个单元格的内容

public void parse(String path) throws IOException {
    FileInputStream fis = new FileInputStream(path);
    XWPFDocument ex = new XWPFDocument(fis);
    XWPFWordExtractor extractor = new XWPFWordExtractor(ex);
    List<IBodyElement> docIter = ex.getBodyElements();
    Iterator<IBodyElement> iter = docIter.iterator();
    for (IBdyElement iBodyElement2 : docIter) {
        if (iBodyElement2 instanceof XWPFTable) {
            XWPFTable table = (XWPFTable) iBodyElement2;
                for (int i = 0; i < table.getNumberOfRows(); i++) {
                    XWPFTableRow row = table.getRow(i);
                        List<XWPFTableCell> rowcells = row.getTableCells();
                        for (XWPFTableCell xwpfTableCell : rowcells) {
                            System.out.print(xwpfTableCell.getText());
                    }
            }
        }
    }
公共void解析(字符串路径)引发IOException{
FileInputStream fis=新的FileInputStream(路径);
XWPFDocument ex=新XWPFDocument(fis);
XWPFWORD提取器提取器=新的XWPFWORD提取器(ex);
List docIter=ex.getBodyElements();
迭代器iter=docIter.Iterator();
对于(IBdyElement IBODYLEMENT2:docIter){
if(XWPFTable的iBodyElement2实例){
XWPFTable表=(XWPFTable)iBodyElement2;
对于(int i=0;i
当我在带有表的.docx文档上运行此代码时,它将打印单元格中的字符串,而不带换行符。 例如,如果一个单元格中填充了字符串“Foo
Bar”,它将被打印为“FooBar”。这对我来说是一个很大的问题


有没有办法读取保留换行符的单元格?

而不是调用
getText()
(将所有内容粘在一起),您是否尝试获取单元格中的各个运行并逐个打印出来?您的意思是像row.getCell(1).getText()?在这种情况下,它没有帮助(另外,我不知道如何获得表中的列/单元格数,因此很难迭代)不。从给定的
XWPFTableCell
,您将需要获取
XWPFRun
实例。很抱歉这个愚蠢的问题,但是我如何获取关联的XWPFRun。我在XWPFTableCell的API中找不到对此的任何引用。您需要查看段落或(嵌套)表-有关如何获取这两个表的详细信息,请参阅,这两个表都包含运行