如何使用apache POI逐行遍历.docx文件

时间:2012-10-08 09:42:57

标签: grails groovy apache-poi openxml

我的目标是读取.docx文件并在视图(网页)上显示该文件。

我正在使用apache POI来读取Grails应用程序中的.docx文件 请建议我在视图中显示输出而不会丢失Blankspaces和LineBreaks。

我的.docx文档内容

This is a .docx document ...
this is second line
this is third line

打印时读取Groovy控制台的结果:

This is a .docx document ...
this is second line
this is third line

但是当我传递输出以查看它变成

This is a .docx document ... this is second line this is third line

My code is : 

    import org.apache.poi.xwpf.usermodel.XWPFDocument
    import org.apache.poi.xwpf.extractor.XWPFWordExtractor

    ...
            String str = "E:\\Query.docx"
            File docFile = null;
            docFile = new File(str);
            FileInputStream fis=new FileInputStream(docFile.getAbsolutePath());
            XWPFDocument doc = new XWPFDocument(fis)
            XWPFWordExtractor docExtractor =  new XWPFWordExtractor(doc)
            println docExtractor.getText()
    ...

如果有人可以建议我迭代文档的每一行,那么我可以很容易地得到我的结果。 请帮帮我,我被困了。

1 个答案:

答案 0 :(得分:1)

HTML忽略换行符。因此,虽然像“Hello there \ nLine 2 \ n”这样的字符串在控制台中呈现为

Hello There
Line 2

作为HTML,它们都显示在同一行。您需要使用一些合适的HTML替换换行符,例如<br />或包装段落/ div标签中的内容。