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