从Word文档中提取所有“标题1”
问题描述:
我想从“标题1”中提取Word文档中的所有文本。 Currelenty我有以下代码:从Word文档中提取所有“标题1”
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;
}
}
}
如果我跑这一点,他只能提取两个率先“标题”,打一个空格或其他文本后退出。 有人想法解决这个问题吗? 在此先感谢。
ps。 Kop的意思是荷兰语的标题。
*编辑:如果我删除break语句,我得到了相同的输出,然后他用Exception in thread "main" java.lang.NullPointerException
答
退出。如果你的程序认定,不具备“KOP”风格 if(paragraph.getStyle().equals(kop))
那么它将一个段落退出for loop
。我认为你应该删除break
,而是继续遍历所有段落并检查是否有必要的样式。
检查kop != null
并妥善处理。如果您确定kop不为空,请执行以下操作。
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");
}
}
如果我删除了休息和替换它继续或只是打印他仍然被卡住空指针。 – Patrick
您可以尝试以下操作:检查'paragraph.getStyle!= null',然后检查它是否等于“kop” – Naxos84
谢谢'if(paragraph.getStyle()!= null)'在检查标题之前解决问题。 – Patrick