Apache POI Java : guide complet avec exemples pratiques

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

1. Qu'est-ce qu'Apache POI et pourquoi l'utiliser ?

Apache POI (Poor Obfuscation Implementation) est une bibliothèque open source puissante en langage Java, conçue pour créer, lire et modifier des fichiers aux formats Microsoft Office (Excel, Word, PowerPoint, Outlook). Elle permet aux développeurs de gérer des documents par programmation sans avoir besoin d'installer la suite Microsoft Office. La bibliothèque propose deux API principales : HSSF (Horrible Spreadsheet Format) pour les fichiers au format .xls (Excel 97-2003) et XSSF (XML Spreadsheet Format) pour le format moderne .xlsx (Excel 2007+). Pour les fichiers Word, des composants similaires sont utilisés : HWPF (pour .doc) et XWPF (pour .docx).

Pourquoi en avez-vous besoin ? Dans le développement moderne, il est souvent nécessaire d'automatiser le travail avec des documents bureautiques : générer des rapports, importer des données à partir de tableaux, créer des modèles de contrats ou élaborer des synthèses analytiques complexes. Apache POI répond à ces besoins en offrant aux développeurs Java un contrôle total sur la structure du document : du formatage des cellules et de la création de graphiques dans Excel à la gestion des tableaux, des images et des styles dans Word.

La bibliothèque est activement maintenue par la communauté Apache Software Foundation, dispose d'une documentation complète et est utilisée dans de grands projets d'entreprise. Elle est compatible avec Java 8 et versions ultérieures, ce qui en fait un outil universel pour la plupart des applications Java modernes, y compris les services web, les applications de bureau et les systèmes de traitement de données.

2. Installation

Apache POI est distribué via le Maven Central Repository. Pour l'intégrer à votre projet, vous devez ajouter les dépendances dans le fichier pom.xml (pour Maven) ou build.gradle (pour Gradle).

Maven

<!-- Dépendance principale pour travailler avec Excel (.xls et .xlsx) -->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>5.3.0</version>
</dependency>

<!-- Pour travailler avec les documents Word (.doc et .docx) -->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-scratchpad</artifactId>
    <version>5.3.0</version>
</dependency>

Gradle

implementation 'org.apache.poi:poi-ooxml:5.3.0'
implementation 'org.apache.poi:poi-scratchpad:5.3.0'

Important : La version 5.3.0 est la version actuelle au moment de la rédaction de cet article. Il est recommandé de vérifier la dernière version sur Maven Repository. Notez également que poi-ooxml inclut déjà poi (le module de base) et poi-ooxml-lite (pour les formats OOXML).

3. Démarrage rapide : exemple minimal fonctionnel

Créons un fichier Excel simple avec une ligne de données et enregistrons-le sur le disque.

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.FileOutputStream;
import java.io.IOException;

public class QuickStart {
    public static void main(String[] args) {
        // Crée un nouveau classeur (Workbook) pour le format .xlsx
        try (Workbook workbook = new XSSFWorkbook()) {
            // Crée une feuille nommée "Données"
            Sheet sheet = workbook.createSheet("Données");

            // Crée une ligne (index 0 — première ligne)
            Row row = sheet.createRow(0);

            // Crée une cellule dans la colonne A (index 0)
            Cell cell = row.createCell(0);
            cell.setCellValue("Bonjour, Apache POI !");

            // Crée une cellule dans la colonne B (index 1) avec une valeur numérique
            Cell cell2 = row.createCell(1);                    

Recommendations