Apache POI: Text aus Word-Datei in Java extrahieren

In diesem Tutorial sehen wir uns zwei verschiedene Möglichkeiten an, eine Word-Datei in Java mit der Erweiterung doc oder docx zu lesen und ihren Textinhalt zu extrahieren.

Bevor Sie beginnen, müssen Sie die Apache POIAPI herunterladen.

Lesen einer Word-Datei .doc mit WordExtractor

Apache POI verwendet die WordExtractor  Dies ermöglicht die Extraktion des Inhalts der gesamten Word-Datei in jede Seite einer Dokumentdatei. Stellen Sie sicher, dass die Datei die Erweiterung .doc hat und MS-Word 97-2003 datiert. Mit der WordExtractor-Klasse können Sie den gesamten Text in einem Word-Dokument extrahieren, einschließlich Absätze, Tabellen, Kopf- und Fußzeilen auf jeder Seite.

Sie müssen die getParagraphText() oder getText() um den Text aus der Word-Datei in Form eines Arrays abzurufen, in dem jedes Feld im Array einen Absatz vom Typ String enthält.

Die Klasse  HWPFDocument  Akzeptiert einen Wiedergabestream in die Datei als Parameter. Diese Klasse spielt die Rolle eines Buckets, da wir die gesamte Struktur des Dokuments einfügen.

import java.io.*; 
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.extractor.WordExtractor;

public class LireDoc
{
public static void main(String[] args)
{
try
{
File file = new File("nouveaudoc.doc");
FileInputStream fis = new FileInputStream(file.getAbsolutePath());
HWPFDocument-Dokument = neues HWPFDocument(fis);
  WordExtractor extractor = new WordExtractor(document);
String[] text = extractor.getParagraphText();
for (int i = 0; i < texte.length; i++)
{
if (texte[i] != null)
System.out.println(texte[i]);
}
}
catch (Ausnahme e)
{
e.printStackTrace();
}
}
}

Lesen einer Word-.docx-Datei mit XWPFWordExtractor

Das Microsoft Office 2007-Dokument verwendet das .docx-Format und speichert die Informationen (Text, Format, Farbe, Schriftart usw.) in einer XML-Datei. Die Klasse  XWPFWordExtractor wird verwendet, um den Text aus dieser Datei mit dem Namen OOXML.

Um den String-Text zu erhalten, rufen Sie den XWPFWordExtractor.getText(). Es ist klar, dass das .docx Format leichter zu lesen ist als das alte Format .doc.

import java.io.*; 
import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
import org.apache.poi.xwpf.usermodel.XWPFDocument;

public class ReadDocx
{
public static void main(String[] args)
{
try
{
File file = new File("nouveaudoc.docx");
FileInputStream fis = new FileInputStream(file.getAbsolutePath());
XWPFDocument-Dokument = neues XWPFDocument(fis);
  XWPFWordExtractor extractor = new XWPFWordExtractor(document);
Zeichenfolgentext = extractor.getText();
System.out.println(text);
}
catch (Ausnahme e)
{
e.printStackTrace();
}
}
}