Travailler avec Excel en Java : Aperçu des bibliothèques et exemples de code
Bien que PythonLib soit dédié à Python, Java reste l'un des langages les plus demandés dans le développement d'entreprise, où le travail avec les tableurs Excel est une tâche quotidienne. Dans cet article, nous examinerons les principales bibliothèques pour travailler avec Excel en Java, leurs fonctionnalités et fournirons des exemples pratiques de code.
Pourquoi des bibliothèques pour Excel en Java ?
Java ne dispose pas de moyens intégrés pour lire et écrire des fichiers Excel. Pour cela, on utilise des bibliothèques tierces qui permettent de :
- Créer de nouveaux classeurs Excel (formats XLS et XLSX).
- Lire et modifier des fichiers existants.
- Formater les cellules, les fusionner, définir des styles.
- Travailler avec des formules, des graphiques et des macros.
- Exporter des données à partir de bases de données ou d'autres sources.
Bibliothèques principales
1. Apache POI
Apache POI est la bibliothèque la plus populaire et la plus puissante pour travailler avec les fichiers Microsoft Office en Java. Elle prend en charge à la fois l'ancien format XLS (HSSF) et le nouveau XLSX (XSSF).
Avantages :
- Prise en charge complète de toutes les fonctionnalités d'Excel : formules, styles, mise en forme conditionnelle, graphiques.
- Communauté active et mises à jour régulières.
- Prise en charge de la lecture et de l'écriture.
Inconvénients :
- Consommation mémoire élevée lors du travail avec de gros fichiers.
- API complexe pour les débutants.
2. EasyExcel (Alibaba)
EasyExcel est une bibliothèque légère d'Alibaba, conçue pour travailler avec de gros fichiers XLSX. Elle utilise un traitement par flux, ce qui réduit considérablement la consommation mémoire.
Avantages :
- Consommation mémoire minimale (jusqu'à 100 fois moins que POI).
- API simple et intuitive.
- Prise en charge des annotations pour le mapping des données.
Inconvénients :
- Ne prend pas en charge l'ancien format XLS.
- Prise en charge limitée du formatage.
3. JExcelApi (jxl)
Ancienne bibliothèque qui ne prend en charge que le format XLS. Adaptée aux tâches simples, mais elle n'a pas été mise à jour depuis longtemps et ne fonctionne pas avec XLSX.
Exemples de code
Exemple 1 : Lecture d'un fichier Excel avec Apache POI
import org.apache.poi.ss.usermodel.*;import org.apache.poi.xssf.usermodel.XSSFWorkbook;import java.io.FileInputStream;import java.io.IOException;
public class ReadExcel { public static void main(String[] args) { try (FileInputStream fis = new FileInputStream("data.xlsx"); Workbook workbook = new XSSFWorkbook(fis)) { Sheet sheet = workbook.getSheetAt(0); for (Row row : sheet) { for (Cell cell : row) { switch (cell.getCellType()) { case STRING: System.out.print(cell.getStringCellValue() + "\\t"); break; case NUMERIC: System.out.print(cell.getNumericCellValue() + "\\t"); break; case BOOLEAN: System.out.print(cell.getBooleanCellValue() + "\\t"); break; } } System.out.println(); } } catch (IOException e) { e.printStackTrace(); } }}Exemple 2 : Écriture de données dans Excel avec Apache POI
import org.apache.poi.ss.usermodel.*;import org.apache.poi.xssf.usermodel.XSSFWorkbook;import java.io.FileOutputStream;import java.io.IOException;
public class WriteExcel { public static void main(String[] args) { try (Workbook workbook = new XSSFWor