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();
}
}
}