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.
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. _
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.)
Ein Beispiel, das einen Wert aus einer vorhandenen Excel-Datei abruft, den Inhalt hinzufügt und in eine andere Excel-Datei ausgibt.
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();
}
}
}
In Zelle A1 wird eine Zeichenfolge (Beispiel) eingegeben, in Zelle A2 ein numerischer Wert (1,23) und in Zelle A3 eine Formel (A2 * 2).
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
Jeder im Programm eingestellte Wert wird in Spalte B ausgegeben.
Recommended Posts