Il est nécessaire de se référer et de sortir (créer) un fichier Excel à partir d'un programme Java en entreprise, et à ce moment-là, j'ai utilisé Apache POI pour le gérer, j'ai donc résumé les opérations de base.
Un des projets Apache, une bibliothèque 100% Java capable de lire et d'écrire des fichiers au format Microsoft Office tels que Word et Excel. _ * Le nom POI est ironiquement appelé "Poor Obfuscation Implementation" parce que le format était intentionnellement et à moitié obscurci lors de la rétro-ingénierie du format de fichier Office. Il est dérivé de l'acronyme de Damono. _
Obtenez la bibliothèque sur le site Web officiel d'Apache POI. (La dernière version en mars 2020 est la 4.1.2, mais cette fois, c'était la dernière au moment du support commercial, implémentée dans la 3.17)
Un exemple qui acquiert une valeur à partir d'un fichier Excel existant, ajoute le contenu et le renvoie dans un autre fichier Excel.
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 {
/**Chemin du fichier Excel d'entrée*/
public static final String IN_EXCEL_FILE_PATH = "excel/in/sample.xlsx";
/**Chemin du fichier Excel de sortie*/
public static final String OUT_EXCEL_FILE_PATH = "excel/out/output.xlsx";
public static void main(String[] args) {
//----Ouvrez le fichier Excel----
Workbook wb = null;
try ( InputStream is = new FileInputStream(IN_EXCEL_FILE_PATH); ) {
wb = WorkbookFactory.create(is);
} catch (FileNotFoundException e) {
//Se produit lorsque le fichier Excel cible n'existe pas
e.printStackTrace();
} catch (IOException e) {
//Se produit lorsque la lecture du fichier Excel cible échoue
e.printStackTrace();
} catch (EncryptedDocumentException e) {
//Se produit lorsqu'un mot de passe est défini pour le fichier Excel cible
e.printStackTrace();
} catch (InvalidFormatException e) {
//Se produit lorsque le fichier Excel cible est dans un format non valide
e.printStackTrace();
}
//Sélectionnez la feuille cible
Sheet sheet1 = wb.getSheet("Sheet1");
//----Obtenez la valeur de chaque cellule de la colonne A----
System.out.println("<Entrée>");
//Obtenez une chaîne
Row row = sheet1.getRow(0); //La première ligne
Cell cell = row.getCell(0); //Rangée A
String a1 = cell.getStringCellValue();
System.out.println("A1 : " + a1);
//Obtenez le numéro
row = sheet1.getRow(1); //2e ligne
cell = row.getCell(0); //Rangée A
double a2 = cell.getNumericCellValue();
System.out.println("A2 : " + a2);
//Obtenez la formule
row = sheet1.getRow(2); //3e ligne
cell = row.getCell(0); //Rangée A
String a3 = cell.getCellFormula();
System.out.println("A3 : " + a3);
//----Ajouter une valeur à la colonne B pour la sortie (créer une nouvelle cellule car la colonne B est vide)----
System.out.println("<Sortie>");
//Sortie d'une chaîne de caractères
row = sheet1.getRow(0); //La première ligne
cell = row.createCell(1); //Création de la colonne B
cell.setCellValue(a1 + a1);
System.out.println("B1 : " + cell.getStringCellValue());
//Valeur numérique de sortie
row = sheet1.getRow(1); //2e ligne
cell = row.createCell(1); //Création de la colonne B
cell.setCellValue(a2 + a2);
System.out.println("B2 : " + cell.getNumericCellValue());
//Formule de sortie
row = sheet1.getRow(2); //3e ligne
cell = row.createCell(1); //Création de la colonne B
cell.setCellFormula("B2*2");
System.out.println("A3 : " + cell.getCellFormula());
//----Sortie dans un fichier Excel----
try ( FileOutputStream os = new FileOutputStream(OUT_EXCEL_FILE_PATH); ) {
wb.write(os);
} catch (FileNotFoundException e) {
//Se produit lorsque le chemin spécifié n'existe pas dans la destination de sortie
e.printStackTrace();
} catch (IOException e) {
//Se produit lorsque la sortie d'un fichier Excel échoue
e.printStackTrace();
}
}
}
Une chaîne de caractères (échantillon) est entrée dans la cellule A1, une valeur numérique (1,23) est entrée dans la cellule A2 et une formule (A2 * 2) est entrée dans la cellule A3.
Chaque valeur de la colonne A du fichier d'entrée a été acquise. Définissez également les valeurs du fichier de sortie comme suit.
<Entrée>
A1 : sample
A2 : 1.23
A3 : A2*2
<Sortie>
B1 : samplesample
B2 : 2.46
A3 : B2*2
Chaque valeur définie dans le programme est sortie dans la colonne B.
Recommended Posts