Apache POI-XSSF
Open-Source-Java API für Microsoft® Excel XLSX-Dateien
Erstellen, bearbeiten und konvertieren Sie Excel-XLSX-Tabellen über die Java-Bibliothek in CSV- und HTML-Dateiformate.
Was ist Apache POI-XSSF?
Apache POI-XSSF ist eine reine Java-Implementierung des XLSX-Dateiformats von Excel 2007. Die API stellt Verfahren zum Erstellen, Lesen, Ändern und Schreiben von Excel-XLSX-Dateien bereit. Es bietet Low-Level-Strukturen für Menschen mit besonderen Bedürfnissen. Es bietet auch eine Ereignismodell-API für effizienten Nur-Lese-Zugriff sowie eine vollständige Benutzermodell-API zum Erstellen, Lesen und Ändern von XLSX-Dateien. Apache POI-XSSF bietet großartige Unterstützung für zusätzliche Excel-Funktionen wie das Arbeiten mit Blättern, Formeln, das Erstellen von Zellstilen durch Füllen von Farben und Rahmen, Schriftarten, Kopf- und Fußzeilen, Formen, Datenvalidierungen, Bilder, Hyperlinks und vieles mehr.
Erste Schritte mit Apache POI XSSF
Zunächst muss das Java Development Kit (JDK) auf Ihrem System installiert sein. Wenn Sie es bereits haben, gehen Sie zur Downloadseite von Apache POI, um die neueste stabile Version in einem Archiv zu erhalten. Extrahieren Sie den Inhalt der ZIP-Datei in ein beliebiges Verzeichnis, aus dem die benötigten Bibliotheken mit Ihrem Java-Programm verknüpft werden können. Das ist alles!
Das Referenzieren von Apache POI in Ihrem Maven-basierten Java-Projekt ist sogar noch einfacher. Alles, was Sie brauchen, ist, die folgende Abhängigkeit in Ihrer pom.xml hinzuzufügen und Ihre IDE die Apache POI-Jar-Dateien abrufen und referenzieren zu lassen.
Apache POI Maven-Abhängigkeit
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.0</version>
</dependency>
Erstellen Sie große Excel-Tabellen mithilfe der Java-API
Apache POI XSSF bietet über die SXSSF-API einen geringen Speicherbedarf für die Verarbeitung großer Datenmengen, die in MS Excel-Dateien geschrieben werden. Dies ermöglicht das Schreiben sehr großer Dateien, ohne dass der Speicher knapp wird, da immer nur ein konfigurierbarer Teil der Zeilen im Speicher gehalten wird. POI-SXSSF erreicht seinen geringen Speicherbedarf, indem es den Zugriff auf die Zeilen beschränkt, die sich innerhalb eines gleitenden Fensters befinden, während XSSF Zugriff auf alle Zeilen im Dokument gewährt. Auf ältere Zeilen, die sich nicht mehr im Fenster befinden, kann nicht mehr zugegriffen werden, da sie auf die Festplatte geschrieben werden. Sie können eine große Excel-Datei in Java erstellen, indem Sie die folgenden Schritte ausführen
Erstellen Sie große Excel-Dateien mit Java
- Erstellen Sie ein neues SXSSFWorkbook und behalten Sie 100 Zeilen im Arbeitsspeicher bei, überschüssige Zeilen werden auf die Festplatte geleert
- Erstellen Sie ein neues Arbeitsblatt mit der Methode createSheet()
- Fügen Sie Daten in 2000 Zeilen und 2000 Zellen ein, indem Sie createRow(), createCell() und setCellValue("Your data") innerhalb und eine verschachtelte Schleife verwenden
- Speichern Sie die Datei mit FileOutputStream() und übergeben Sie den Namen der Ausgabedatei
- Schreiben Sie mit der Methode SXSSFWorkbook.Write() in die Datei und übergeben Sie FileOutputStream als Parameter
Erstellen Sie eine große Excel-Datei
// create a new SXSSFWorkbook
SXSSFWorkbook wb = new SXSSFWorkbook(100);
Sheet sh = wb.createSheet();
// insert 2000 rows
for(int rownum = 0; rownum < 2000; rownum++){
Row row = sh.createRow(rownum);
// insert data in 20000 cells
for(int cellnum = 0; cellnum < 10; cellnum++){
Cell cell = row.createCell(cellnum);
cell.setCellValue("Row Number: "+ rownum + " Cell Number: "+ cellnum);
}
}
// save file
FileOutputStream out = new FileOutputStream("LargeDcument.xlsx");
wb.write(out);
out.close();
Java-APIs für die Erstellung von Excel-Arbeitsmappen und das Hinzufügen von Blättern
Apache POI XSSF ermöglicht Computerprogrammierern, eine neue Excel-Arbeitsmappe im XLSX-Dateiformat zu erstellen. Nachdem Entwickler die Arbeitsmappe erstellt haben, werden Arbeitsblätter aus einer vorhandenen Instanz der Arbeitsmappe erstellt, und das neu erstellte Blatt wird der Arbeitsmappe automatisch nacheinander hinzugefügt.
Erstellen Sie eine Excel-Arbeitsmappe und fügen Sie Blätter hinzu
// create a new XLSX file
Workbook workbook = new XSSFWorkbook();
OutputStream outputStream = new FileOutputStream("CreateXlsx.xlsx");
// create a new sheet
Sheet sheet = workbook.createSheet("Apache POI XSSF");
// create a new sheet
Row row = sheet.createRow(1);
// create a new cell
Cell cell = row.createCell(1);
// set cell value
cell.setCellValue("File Format Developer Guide");
// save file
workbook.write(outputStream);
Konvertieren Sie eine Excel-Tabelle in CSV und andere Dateiformate
Java-Entwickler und Programmierer können mithilfe der Apache POI XSSF-API ganz einfach eine Excel-Tabelle in ein CSV-Dateiformat konvertieren. CSV steht für Comma-Separated-Values und ist ein weit verbreitetes Format für den Datenaustausch zwischen vielen Anwendungen. Zunächst müssen Entwickler die XLS-Eingabedatei mit der Apache POI XSSF-API lesen und dann die extrahierten Informationen in CSV-Dateien schreiben.
Konvertieren Sie XLSX in CSV
// Open and existing XLSX file
FileInputStream fileInStream = new FileInputStream("LargeDocument.xlsx");
XSSFWorkbook workBook = new XSSFWorkbook(fileInStream);
XSSFSheet selSheet = workBook.getSheetAt(0);
// Loop through all the rows
Iterator rowIterator = selSheet.iterator();
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
// Loop through all rows and add ","
Iterator cellIterator = row.cellIterator();
StringBuffer stringBuffer = new StringBuffer();
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
if (stringBuffer.length() != 0) {
stringBuffer.append(",");
}
stringBuffer.append(cell.getStringCellValue());
}
System.out.println(stringBuffer.toString());
}
workBook.close();
XSSF-Erweiterung für Kopf- und Fußzeilen
Apache POI XSSF kann Kopf- und Fußzeilen der ersten Seite sowie gerade/ungerade Kopf- und Fußzeilen verarbeiten. Kopf- und Fußzeilen sind ein sehr wichtiger Bestandteil einer Excel-Tabelle. Es enthält normalerweise zusätzliche Informationen wie Daten, Seitenzahlen, Name des Autors und Fußnoten, die dabei helfen, längere Dokumente zu organisieren und leichter lesbar zu halten. Alle Header/Footer Property Flags können in XSSF gehandhabt werden. Die ungerade Kopf- und Fußzeile sind die Standard-Kopf- und Fußzeile. Es wird auf allen Seiten angezeigt, die weder eine Kopfzeile für die erste Seite noch eine Kopfzeile für gerade Seiten anzeigen.
Zusammenführen von Zellen und Textextraktion in Excel XLSX-Dateien
Apache POI XSSF bietet die Fähigkeit, mit der Java-Programmierer mehrere Zellen zu einer einzigen Zelle in einer Excel-Tabelle zusammenführen können. Es enthält Methoden, die Zellindizes als Argument nehmen und die Zellen zu einer einzigen großen Zelle zusammenführen. Eine der anspruchsvollsten Funktionen ist die Möglichkeit, Text aus einer XLSX-Datei zu extrahieren und entsprechend Ihren Anforderungen zu verwenden. Apache POI hat eine grundlegende Textextraktion für alle vom Projekt unterstützten Dateiformate bereitgestellt. Für erweiterte Textextraktionsanforderungen, einschließlich Rich-Text-Extraktion (wie Formatierung und Styling), zusammen mit XML- und HTML-Ausgabe, arbeitet Apache POI eng mit Apache Tika zusammen, um POI-basierte Tika-Parser für alle vom Projekt unterstützten Dateiformate bereitzustellen.