[Java] Behandeln Sie Excel-Dateien mit Apache POI

Überblick

Es ist notwendig, auf eine Excel-Datei aus einem Java-Programm in Unternehmen zu verweisen und diese auszugeben (zu erstellen). Zu diesem Zeitpunkt habe ich Apache POI verwendet, um damit umzugehen, und daher die grundlegenden Vorgänge zusammengefasst.

Was ist Apache POI?

Eines der Apache-Projekte, eine 100% Java-Bibliothek, die Dateien im Microsoft Office-Format wie Word und Excel lesen und schreiben kann. _ * Der Name POI wird ironischerweise "Schlechte Verschleierungsimplementierung" genannt, da das Format absichtlich und halb verdeckt war, als das Office-Dateiformat rückentwickelt wurde. Es leitet sich vom Akronym für Damono ab. _

Apache POI erhalten

Holen Sie sich die Bibliothek von der offiziellen Apache POI-Website. (Die neueste Version vom März 2020 ist 4.1.2, diesmal jedoch die neueste zum Zeitpunkt der Geschäftsunterstützung, implementiert in 3.17.)

Beispielcode

Ein Beispiel, das einen Wert aus einer vorhandenen Excel-Datei abruft, den Inhalt hinzufügt und in eine andere Excel-Datei ausgibt.

Code

ApachePoiSample.java


import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;

import org.apache.poi.EncryptedDocumentException;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;

public class ApachePoiSample {

	/**Geben Sie den Excel-Dateipfad ein*/
	public static final String IN_EXCEL_FILE_PATH = "excel/in/sample.xlsx";
	/**Excel-Dateipfad ausgeben*/
	public static final String OUT_EXCEL_FILE_PATH = "excel/out/output.xlsx";

	public static void main(String[] args) {

		//----Öffnen Sie die Excel-Datei----
		Workbook wb = null;
		try ( InputStream is = new FileInputStream(IN_EXCEL_FILE_PATH); ) {
			wb = WorkbookFactory.create(is);
		} catch (FileNotFoundException e) {
			//Tritt auf, wenn die Excel-Zieldatei nicht vorhanden ist
		    e.printStackTrace();
		} catch (IOException e) {
			//Tritt auf, wenn das Lesen der Excel-Zieldatei fehlschlägt
		    e.printStackTrace();
		} catch (EncryptedDocumentException e) {
			//Tritt auf, wenn ein Kennwort für die Excel-Zieldatei festgelegt wurde
			e.printStackTrace();
		} catch (InvalidFormatException e) {
			//Tritt auf, wenn die Zieldatei Excel ein ungültiges Format hat
			e.printStackTrace();
		}

		//Wählen Sie das Zielblatt aus
		Sheet sheet1 = wb.getSheet("Sheet1");

		//----Rufen Sie den Wert aus jeder Zelle in Spalte A ab----
		System.out.println("<Eingabe>");

		//Holen Sie sich eine Zeichenfolge
		Row row = sheet1.getRow(0);		//Die erste Zeile
		Cell cell = row.getCell(0);		//Zeile A.
		String a1 = cell.getStringCellValue();
		System.out.println("A1 : " + a1);

		//Holen Sie sich die Nummer
		row = sheet1.getRow(1);			//2. Zeile
		cell = row.getCell(0);			//Zeile A.
		double a2 = cell.getNumericCellValue();
		System.out.println("A2 : " + a2);

		//Holen Sie sich die Formel
		row = sheet1.getRow(2);			//3. Zeile
		cell = row.getCell(0);			//Zeile A.
		String a3 = cell.getCellFormula();
		System.out.println("A3 : " + a3);

		//----Fügen Sie Spalte B einen Wert für die Ausgabe hinzu (erstellen Sie eine neue Zelle, da Spalte B leer ist).----
		System.out.println("<Ausgabe>");

		//Geben Sie eine Zeichenfolge aus
		row = sheet1.getRow(0);			//Die erste Zeile
		cell = row.createCell(1);		//Spalte B erstellen
		cell.setCellValue(a1 + a1);
		System.out.println("B1 : " + cell.getStringCellValue());

		//Zahlenwert ausgeben
		row = sheet1.getRow(1);			//2. Zeile
		cell = row.createCell(1);		//Spalte B erstellen
		cell.setCellValue(a2 + a2);
		System.out.println("B2 : " + cell.getNumericCellValue());

		//Ausgabeformel
		row = sheet1.getRow(2);			//3. Zeile
		cell = row.createCell(1);		//Spalte B erstellen
		cell.setCellFormula("B2*2");
		System.out.println("A3 : " + cell.getCellFormula());

		//----Ausgabe in eine Excel-Datei----
		try ( FileOutputStream os = new FileOutputStream(OUT_EXCEL_FILE_PATH); ) {
			wb.write(os);
		} catch (FileNotFoundException e) {
			//Tritt auf, wenn der angegebene Pfad im Ausgabeziel nicht vorhanden ist
			e.printStackTrace();
		} catch (IOException e) {
			//Tritt auf, wenn die Ausgabe einer Excel-Datei fehlschlägt
			e.printStackTrace();
		}
	}

}

Ausführungsergebnis

Eingabedatei (sample.xlsx)

In Zelle A1 wird eine Zeichenfolge (Beispiel) eingegeben, in Zelle A2 ein numerischer Wert (1,23) und in Zelle A3 eine Formel (A2 * 2). sample.xlsx

Konsolenprotokoll

Jeder Wert in Spalte A der Eingabedatei wurde erfasst. Stellen Sie außerdem die Werte für die Ausgabedatei wie folgt ein.

<Eingabe>
A1 : sample
A2 : 1.23
A3 : A2*2
<Ausgabe>
B1 : samplesample
B2 : 2.46
A3 : B2*2
Ausgabedatei (output.xlsx)

Jeder im Programm eingestellte Wert wird in Spalte B ausgegeben. output.xlsx

Recommended Posts

[Java] Behandeln Sie Excel-Dateien mit Apache POI
Bearbeiten Sie Excel mit Apache POI
Behandeln Sie Dateien mit NIO.2.
[Java] Erstellen einer Excel-Datei mit Apache POI
[Apache POI] Entsprechende Excel-Version
Konvertieren Sie große XLSX-Dateien mit Apache POI in CSV
Excel-Operation mit Apache POI
Lassen Sie uns Excel mit Java betreiben! !!
Ersetzen Sie Text in der AutoShape of Excel-Datei durch Apache POI
Apache POI Excel mit Kotlin
Ausgabe nach Excel mit Apache POI!
Erstellen Sie eine Excel-Datei mit poi
Laden Sie große Dateien mit Apache JMeter herunter
Beispiel für eine EXCEL-Dateiaktualisierung mit JAVA
[Java] Lesen und Schreiben von Dateien mit OpenCSV
[Kotlin] Doppelte Dateien löschen [Java]
Hinweise zum Lesen und Generieren von XLSX-Dateien aus Java mit Apache POI
[Java] Analysieren Sie Excel-Dateien (nicht auf verschiedene Dateien beschränkt) mit Apathce Tika [Kotlin]
[Review] Lesen und Schreiben von Dateien mit Java (JDK6)
[Java] Textextraktion aus PowerPoint (ppt) mit Apache POI
Suche nach POST-Anforderung mit Azure Search + Java Apache HttpClient
[Java] Entwicklung mit mehreren Dateien mittels Paket und Import
Installieren Sie Java mit Homebrew
Wechseln Sie die Plätze mit Java
Installieren Sie Java mit Ansible
Bequemer Download mit JAVA
Gerät mit Schienen handhaben
Behandeln Sie JSON mit minimal-json
Schalten Sie Java mit direnv
Java-Download mit Ansible
Lass uns mit Java kratzen! !!
Erstellen Sie Java mit Wercker
Endian-Konvertierung mit JAVA
Fensteraggregation von Sensordaten mit Apache Flink und Java 8
Behandeln Sie die Java 8-Datums- und Uhrzeit-API mit Thymeleaf mit Spring Boot
So behandeln Sie Ausnahmen mit Java 8 Stream oder Optional kühl
Behandeln Sie Ausnahmen kühl mit Java 8-Lambda-Ausdrücken und der Stream-API
Vermeiden Sie Zip-Bomb-Fehler beim Lesen großer Dateien mit POI
Sprechen Sie über das Hochladen von Dateien mithilfe der Slack-API mit Apache HttpPost