Apache POI Java: vollständiges Tutorial mit Codebeispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

1. Was ist Apache POI und wofür wird es benötigt?

Apache POI (Poor Obfuscation Implementation) ist eine leistungsstarke Open-Source-Bibliothek für Java, die zum Erstellen, Lesen und Ändern von Microsoft Office-Dateien (Excel, Word, PowerPoint, Outlook) entwickelt wurde. Sie ermöglicht Entwicklern, Dokumente programmgesteuert zu verwalten, ohne dass Microsoft Office selbst installiert sein muss. Die Bibliothek bietet zwei Haupt-APIs: HSSF (Horrible Spreadsheet Format) für Dateien im Format .xls (Excel 97-2003) und XSSF (XML Spreadsheet Format) für das moderne Format .xlsx (Excel 2007+). Für Word-Dateien gibt es die entsprechenden Komponenten: HWPF (für .doc) und XWPF (für .docx).

Warum ist das wichtig? In der modernen Softwareentwicklung besteht häufig die Notwendigkeit, die Arbeit mit Office-Dokumenten zu automatisieren: Berichte generieren, Daten aus Tabellen importieren, Vertragsvorlagen erstellen oder komplexe Analyseübersichten zusammenstellen. Apache POI löst diese Aufgaben, indem es Java-Entwicklern die volle Kontrolle über die Dokumentstruktur gibt – von der Zellenformatierung und Diagrammerstellung in Excel bis hin zur Arbeit mit Tabellen, Bildern und Stilen in Word.

Die Bibliothek wird von der Apache Software Foundation aktiv gepflegt, verfügt über eine umfangreiche Dokumentation und kommt in großen Unternehmensprojekten zum Einsatz. Sie ist kompatibel mit Java 8 und höher, was sie zu einem universellen Werkzeug für die meisten modernen Java-Anwendungen macht, darunter Webservices, Desktop-Anwendungen und Datenverarbeitungssysteme.

2. Installation

Apache POI wird über das Maven Central Repository bereitgestellt. Für die Einbindung in Ihr Projekt müssen Sie die Abhängigkeiten in die Datei pom.xml (für Maven) oder build.gradle (für Gradle) einfügen.

Maven

<!-- Hauptabhängigkeit für Excel (.xls und .xlsx) -->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>5.3.0</version>
</dependency>

<!-- Für Word-Dokumente (.doc und .docx) -->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-scratchpad</artifactId>
    <version>5.3.0</version>
</dependency>

Gradle

implementation 'org.apache.poi:poi-ooxml:5.3.0'
implementation 'org.apache.poi:poi-scratchpad:5.3.0'

Wichtig: Die Version 5.3.0 ist zum Zeitpunkt der Erstellung dieses Artikels aktuell. Es wird empfohlen, die neueste Version auf Maven Repository zu prüfen. Beachten Sie auch, dass poi-ooxml bereits poi (das Basismodul) und poi-ooxml-lite (für die Arbeit mit OOXML-Formaten) enthält.

3. Schnellstart: Minimales Arbeitsbeispiel

Erstellen wir eine einfache Excel-Datei mit einer Datenzeile und speichern sie auf der Festplatte.

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.FileOutputStream;
import java.io.IOException;

public class QuickStart {
    public static void main(String[] args) {
        // Neue Arbeitsmappe (Workbook) für das Format .xlsx erstellen
        try (Workbook workbook = new XSSFWorkbook()) {
            // Ein neues Tabellenblatt mit dem Namen "Daten" erstellen
            Sheet sheet = workbook.createSheet("Daten");

            // Eine Zeile erstellen (Index 0 = erste Zeile)
            Row row = sheet.createRow(0);

            // Eine Zelle in Spalte A (Index 0) erstellen
            Cell cell = row.createCell(0);
            cell.setCellValue("Hallo, Apache POI!");

            // Eine Zelle in Spalte B (Index 1) mit einem numerischen Wert erstellen
            Cell cell2 = row.createCell(1);                    

Empfehlungen