Apache POI HSSF
Java-Bibliothek für Microsoft Excel-Binärdateien
Die Open-Source-Java-API ermöglicht das Lesen, Schreiben und Konvertieren von Excel-XLS-Tabellen.
Apache POI HSSF ist eine reine Java-Implementierung des Excel '97(-2007)-Dateiformats (BIFF8). Die kostenlose Open-Source-API bietet Funktionen zum Erstellen, Lesen, Ändern und Schreiben von Excel XLS-Tabellen. Entwickler, die nur Tabellenkalkulationsdaten lesen möchten, können die Ereignismodell-API verwenden, um ihre Anforderungen zu erfüllen. Um Tabellenkalkulationsdaten zu ändern, kann die Benutzermodell-API verwendet werden. Es ist wichtig zu wissen, dass das Benutzermodellsystem einen höheren Speicherbedarf hat als das Low-Level-Ereignisbenutzermodell, aber den großen Vorteil hat, dass es viel einfacher zu handhaben ist.
Apache POI HSSF bietet hervorragende Unterstützung für zusätzliche Excel-Funktionen wie das Arbeiten mit Blättern und 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 HSSF
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-scratchpad</artifactId>
<version>4.0.0</version>
</dependency>
Erstellen Sie eine Excel-Arbeitsmappe und fügen Sie Blätter über Java-APIs hinzu
Die Open-Source-Bibliothek Apache POI HSSF ermöglicht es Softwareentwicklern, eine neue Microsoft Excel-Arbeitsmappe im XLS-Dateiformat zu erstellen. Entwickler können der Sammlung ganz einfach neue Arbeitsblätter aus einer vorhandenen Instanz von Workbook hinzufügen.
Erstellen Sie eine neue XLS-Datei
// create a new workbook
Workbook workbook = new HSSFWorkbook();
OutputStream outputStream = new FileOutputStream("CreateXls.xls");
// create a new sheet
Sheet sheet = workbook.createSheet("Apache POI XSSF");
// create a new row
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);
Java-API zum Lesen und Schreiben in vorhandene Excel-Dateien
Apache POI HSSF ermöglicht Softwareentwicklern, auf Daten aus der vorhandenen Microsoft Excel-Arbeitsmappe zuzugreifen und diese zu lesen. Das Einlesen einer Datei ist sehr einfach, erstellen Sie zuerst eine Arbeitsmappeninstanz aus einem Excel-Arbeitsblatt und gelangen Sie zum gewünschten Blatt. Erhöhen Sie dann die Zeilennummer und iterieren Sie über alle Zellen in einer Zeile. Wiederholen Sie diese Schritte, bis alle Daten gelesen sind. Apache POI HSSF bietet auch Funktionen zum Ändern einer vorhandenen Excel-Datei.
Zelleninhalt über Java lesen
// open xls file
InputStream inputStream = new FileInputStream("document.xls");
Workbook workbook = WorkbookFactory.create(inputStream);
// get sheet
Sheet sheet = workbook.getSheetAt(0);
// get row
Row row = sheet.getRow(1);
// get cell
Cell cell = row.getCell(1);
// display data
System.out.println(cell);
Zeichnen Sie Formen und fügen Sie Bilder zu einer Excel-Tabelle hinzu
Apache POI-HSSF bietet Funktionen zum Zeichnen von Formen in Excel-Tabellen. Es unterstützt das Zeichnen von Formen mit Microsoft Office-Zeichenwerkzeugen. Zeichnen Sie verschiedene Formen wie Oval, Linie, Rechteck und legen Sie beliebige andere Formstile fest. In Apache POI sind Bilder Teil der Zeichnung und unterstützen derzeit die Bildtypen PNG, JPG und DIB.
Rechteck in XLS über Java zeichnen
// create a new workbook
Workbook workbook = new HSSFWorkbook();
OutputStream outputStream = new FileOutputStream("DrawShape.xls");
// create a new sheet
Sheet sheet = workbook.createSheet("Apache POI XSSF");
// create a new row
Row row = sheet.createRow(1);
// create a new cell
Cell cell = row.createCell(1);
// create rectangle shape
HSSFPatriarch patriarch = (HSSFPatriarch) sheet.createDrawingPatriarch();
HSSFClientAnchor a = new HSSFClientAnchor(0, 0, 1023, 254, (short) 1, 0, (short) 1, 0);
HSSFSimpleShape shape = patriarch.createSimpleShape(a);
shape.setShapeType(HSSFSimpleShape.OBJECT_TYPE_RECTANGLE);
// save file
workbook.write(outputStream);
Umgang mit Schriftarten und Zusammenführen von Zellen von XLS-Tabellen
Apache POI-HSSF stellt Methoden bereit, die es Java-Programmierern ermöglichen, mit Schriftarten in Excel-Tabellen umzugehen. Wir können die Schriftart erstellen, die Farbe festlegen, die Größe festlegen usw. Die Schriftart ist eine Schnittstelle, die Methoden zur Handhabung der Schriftart bereitstellt. Apache POI-HSSF ermöglicht es Entwicklern auch, Zellen zu einer einzigen Zelle zusammenzuführen. Dazu stellt es Methoden bereit, die Zellindizes als Argument nehmen und die Zellen zu einer einzigen großen Zelle zusammenführen.
Legen Sie die Schriftart für XLS-Tabellen über Java fest
// create a new XLS file
OutputStream outfile = new FileOutputStream("SetFont.xls");
Workbook wb = new HSSFWorkbook();
// create a new sheet
Sheet sheet = wb.createSheet("Apache POI XSSF");
// create a new row
Row row = sheet.createRow(1);
// create a new cell
Cell cell = row.createCell(1);
// set style
CellStyle style = wb.createCellStyle();
// set text
cell.setCellValue("File Format Developer Guide");
// set font settings
Font font = wb.createFont();
font.setFontHeightInPoints((short) 14);
font.setFontName("Arial");
font.setItalic(true);
font.setBold(true);
// apply font
style.setFont(font);
cell.setCellStyle(style);
// save
wb.write(outfile);