Cet article présente une méthode d'implémentation très basique lors de l'utilisation du ** Apache POI ** de Java en option lorsque vous souhaitez effectuer une opération mécanique sur Excel, mais que l'écriture de macros est problématique. Je vais. Dans le domaine du développement de systèmes, de nombreux documents de conception sont souvent écrits dans Excel, et je pense qu'il y a des situations où il est difficile de vérifier un grand nombre de définitions de tableaux et d'éléments d'écran à la fois. Dans un tel cas, en tant que méthode autre que VBA (macro), la bibliothèque de "Apache POI" facilite la création d'outils avec Java, que vous connaissez bien.
Apache POI (Apache Poi ou PIO) est un projet de l'Apache Software Foundation et est fourni sous la forme d'une bibliothèque 100% Java capable de lire et d'écrire des fichiers au format Microsoft Office tels que Word et Excel. https://ja.wikipedia.org/wiki/Apache_POI
Créez un projet Maven et ajoutez "** poi " et " poi-ooxml **" à la dépendance du fichier pom.xml. (Voir ci-dessous) Vous pouvez également utiliser des fichiers au format OOXML en ajoutant "poi-ooxml". En d'autres termes, POI peut être utilisé pour lire et écrire des fichiers au format 2007 avec des extensions telles que "xlsx" et "docx".
pom.xml
<dependencies>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>[Spécifiez la version]</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>[Spécifiez la version]</version>
</dependency>
</dependencies>
La dernière version semble être "** 4.0.1 **". (Au 1er février 2019) https://mvnrepository.com/artifact/org.apache.poi/poi/4.0.1 https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml/4.0.1
Workbook workbook = WorkbookFactory.create(new File("Chemin du fichier"));
//Si vous connaissez le nom de la feuille
Sheet sheet = workbook.getSheet("Nom de la feuille");
//Si vous connaissez le numéro de la feuille que vous souhaitez obtenir
//Le numéro de feuille est basé sur zéro
Sheet sheet = workbook.getSheetAt(0);
//Lors du traitement répété de toutes les feuilles
Iterator<Sheet> sheets = workbook.sheetIterator();
while(sheets.hasNext()) {
Sheet sheet = sheets.next();
}
//Obtenir le nom de la feuille
String sheetName = inputSheet.getSheetName();
//Obtenir la ligne
//Les numéros de ligne sont basés sur zéro
Row row = sheet.getRow("numéro de ligne");
//Obtenir la cellule
//Les numéros de colonne sont basés sur zéro
Cell cell = row.getCell("Index des colonnes");
//Obtenir le type de cellule
int cellType = cell.getCellType();
//Obtenez de la valeur avec getter en fonction du type
// String
cell.getStringCellValue();
// Boolean
cell.getBooleanCellValue()
// Formula
cell.getCellFormula();
// Numeric
cell.getNumericCellValue();
// etc
//Format de fichier jusqu'à Excel 2003
Workbook outputWorkbook = new HSSFWorkbook();
//OOXML dans Excel 2007(Office Open XML)Format de fichier
Workbook outputWorkbook = new XSSFWorkbook();
Sheet outputSheet = outputWorkbook.createSheet();
//Créer une ligne
//Les numéros de ligne sont basés sur zéro
Row outputRow = outputSheet.createRow("numéro de ligne");
//Créer une cellule
//Les numéros de colonne sont basés sur zéro
Cell outputCell = outputRow.createCell("Index des colonnes");
//Définir la valeur dans la cellule
outputCell.setCellValue("Valeur que vous souhaitez définir");
//Préparer un flux pour la sortie
FileOutputStream out = new FileOutputStream("Chemin du fichier de sortie");
//Sortie dans un fichier
outputWorkbook.write(out);
Les outils que j'ai personnellement créés cette fois sont les suivants. C'est une implémentation assez grossière, mais elle supprime les parties nécessaires d'un grand nombre de fichiers Excel et les fusionne dans un seul fichier. https://github.com/yhayashi30/ExcelMergeTool
Recommended Posts