提取所有"标题1"来自Word文档

时间:2017-09-27 06:22:50

标签: java apache apache-poi

我想从"标题1"中提取word文档中的所有文本。 Currelenty我有以下代码:

public static void Alina(String bestand, String kop) throws Exception {
    FileInputStream fis = new FileInputStream(bestand);
    XWPFDocument xdoc=new XWPFDocument(OPCPackage.open(fis));

    List<XWPFParagraph> paragraphList = xdoc.getParagraphs();
    int aantal = 0;
    for (XWPFParagraph paragraph: paragraphList) {      
        if (paragraph.getStyle().equals(kop)) { 
            System.out.println("aantal keer door document :" +" " + aantal++);
            System.out.println(paragraph.getText());
        } else {
            System.out.println("Test");
            break;
        }
    }
}

如果我这样做,他只提取前两个&#34;标题&#34;击中空格或其他文本后退出。 有人有想法解决这个问题吗? 提前谢谢。

PS。 Kop意味着荷兰人的标题。

*编辑:如果我删除了break语句,我得到相同的输出,然后他退出Exception in thread "main" java.lang.NullPointerException

1 个答案:

答案 0 :(得分:0)

如果您的程序找到的段落没有&#34; kop&#34;样式 if(paragraph.getStyle().equals(kop))然后它会退出for loop。我认为你应该删除break,而是继续遍历所有段落并检查它们是否具有必要的风格。

检查kop != null并正确处理。如果您确定kop不为null,请执行以下操作。

for (XWPFParagraph paragraph: paragraphList)
{     
  if(kop.equals(paragraph.getStyle()))
  { 
    System.out.println("aantal keer door document :" +" " + aantal++);
    System.out.println(paragraph.getText());
  }
  else
  {
    System.out.println("Test");
  }

}