OUTILS EXCEL

Comment lire un fichier Excel en Java (Tutoriel)

Publié février 23, 2023
Partager:

Qu'est-ce qu'Excel ?

Microsoft Excel Workbook est un logiciel basé sur un tableur qui permet à ses utilisateurs d'organiser et de stocker des données de manière efficace. Il stocke et organise les données sous forme de tableaux, c'est-à-dire en utilisant des lignes et des colonnes. La cellule d'une feuille de calcul Excel est la boîte qui contient les données et qui peut être manipulée à l'aide de différents styles, formatages et formules.

Comment lire des fichiers Excel en Java ?

La lecture d'un fichier Excel peut parfois s'avérer compliquée. La lecture de fichiers Excel dans Java est également un peu différente de la lecture de fichiers Word dans Java en raison des cellules d'Excel. Le JDK ne fournit pas d'API directe pour lire ou écrire des documents Microsoft Excel. Au lieu de cela, nous devons nous appuyer sur la bibliothèque tierce Apache POI.

Bibliothèque Apache POI

POI signifie "Poor Obfuscation Implementation" (mauvaise mise en œuvre de l'obscurcissement) Apache POI est une bibliothèque Java open-source conçue pour lire et écrire des documents Microsoft. Il permet de créer et de manipuler divers formats de fichiers basés sur Microsoft Office. Apache POI permet de créer, de modifier et d'afficher/de lire des opérations sur une série de formats de fichiers Microsoft Office.

Télécharger et installer la bibliothèque Apache POI

Pour commencer, nous allons télécharger la dernière version des JARs POI. Naviguez jusqu'à http://poi.apache.org/download.html et téléchargez le dernier fichier ZIP, qui contiendra l'API Java pour lire un fichier Excel en Java.

Comment lire des fichiers Excel en Java, Figure 1 : Télécharger un fichier de distribution binaire

Télécharger les fichiers JAR Apache POI

Lorsque vous téléchargez le fichier ZIP, vous devez le décompresser et ajouter les fichiers JAR suivants au chemin de classe de votre projet. Ceci est expliqué dans la section Lecture d'un fichier Excel ci-dessous.

Comment lire des fichiers Excel en Java, Figure 2 : Fichiers JAR

Ajouter les fichiers Jar d'Apache POI au classpath de Java

Note: Copiez également les fichiers de lib et ooxml-lib avec les autres fichiers.

Classes et interfaces dans la POI

Les classes supportées par les formats de fichiers XLS et XLSX qui peuvent être utilisées sont les suivantes :

Comment lire des fichiers Excel en Java, Figure 3 : Classes Apache POI

Classes Apache POI

Voici une liste des différentes interfaces et classes Java de POI permettant de lire les fichiers XLS et XLSX en Java :

L'interface Workbook est implémentée par les classes HSSFWorkbook et XSSFWorkbook.

  • HSSFWorkbook : Il s'agit d'une représentation de classe du fichier XLS.
  • XSSFWorkbook : Il s'agit d'une représentation de classe du fichier XLSX.

    L'interface Sheet est implémentée par les classes HSSFSheet et XSSFSheet.

  • HSSFSheet : Il s'agit d'une classe représentant une feuille dans un fichier XLS.
  • XSSFSheet : Il s'agit d'une classe représentant une feuille dans un fichier XLSX.

    L'interface Row est mise en œuvre par les classes HSSFRow et XSSFRow.

  • HSSFRow : Il s'agit d'une classe représentant une ligne dans la feuille d'un fichier XLS.
  • XSSFRow : Il s'agit d'une classe représentant une ligne dans la feuille d'un fichier XLSX.

    L'interface Cellule est implémentée par les classes HSSFCell et XSSFCell.

  • HSSFCell: Il s'agit d'une classe représentant une cellule dans une ligne d'un fichier XLS.
  • XSSFCell : Il s'agit d'une classe représentant une cellule dans une ligne d'un fichier XLSX.

Lecture d'un fichier Excel

Pour notre exemple, nous lirons le fichier Excel suivant en Java :

Comment lire des fichiers Excel en Java, Figure 4 : Le fichier Excel à lire

Le fichier Excel qui sera lu

Étapes pour lire un fichier Excel en Java

  1. Créez un projet Java en utilisant n'importe quel IDE Java. Nous utiliserons Netbeans pour ce projet.

  2. Ensuite, créez un dossier lib dans le projet.

  3. Ensuite, ajoutez les fichiers JAR téléchargés au dossier lib créé à l'étape précédente.

  4. Définissez le Class-Path en faisant un clic droit sur le dossier Project > Build Path > Add External JARs files > sélectionnez tous les fichiers JAR ci-dessus > Apply and close.

  5. Créons maintenant un fichier de classe portant le nom ReadExcelFileDemo.

  6. Créez un fichier Excel nommé "studentdata.xls" et inscrivez-y les données ci-dessus ou toute autre donnée.

    Vous trouverez ci-dessous un exemple de code pour la lecture de fichiers Excel en Java :

import java.io.File;  
import java.io.FileInputStream;  
import java.io.IOException;  
import org.apache.poi.hssf.usermodel.HSSFSheet;  
import org.apache.poi.hssf.usermodel.HSSFWorkbook;  
import org.apache.poi.ss.usermodel.Cell;  
import org.apache.poi.ss.usermodel.FormulaEvaluator;  
import org.apache.poi.ss.usermodel.Row;  

public class ReadExcelFileDemo  {  
    public static void main(String args []) throws IOException  {  
        //obtaining input bytes from a file  
        FileInputStream fis=new FileInputStream(new File("C:\\demo\\studentdata.xls"));  
        //creating workbook instance that refers to .xls file  
        HSSFWorkbook wb=new HSSFWorkbook(fis);   
        //creating a Sheet object to retrieve the object  
        HSSFSheet sheet=wb.getSheetAt(0);  
        //evaluating cell type   
        FormulaEvaluator formulaEvaluator=wb.getCreationHelper().createFormulaEvaluator();  
        for(Row row: sheet) {  
            for(Cell cell: row) {
                switch(formulaEvaluator.evaluateInCell(cell).getCellType()) {  
                    case Cell.CELL_TYPE_NUMERIC: //field that represents numeric cell type  
                        //getting the value of the cell as a number  
                        System.out.print(cell.getNumericCellValue()+ "\t\t");   
                        break;  
                    case Cell.CELL_TYPE_STRING: //field that represents string cell type  
                        //getting the value of the cell as a string  
                        System.out.print(cell.getStringCellValue()+ "\t\t");  
                        break;
                }
            }
            System.out.println();  
        }
    }
}
JAVA

Output:

IdNames
1Zeeshan
2Shoaib
3Umar
4Rizwan
5Ahsan

Les étapes sont les mêmes pour la lecture des fichiers xlsx, à l'exception des deux points principaux ci-dessous :

  • Tout d'abord, modifiez le format du fichier en .xlsx. Le même fichier "studentdata" peut être utilisé, mais avec l'extension .xlsx.
  • Deuxièmement, il y a une différence dans la manière d'importer Java Apache POI. Le code est le suivant :
import java.io.File;  
import java.io.FileInputStream;  
import java.util.Iterator;  
import org.apache.poi.ss.usermodel.Cell;  
import org.apache.poi.ss.usermodel.Row;  
import org.apache.poi.xssf.usermodel.XSSFSheet;  
import org.apache.poi.xssf.usermodel.XSSFWorkbook;  

public class XLSXReaderExample  {

    public static void main(String [] args) {  
        try {  
            File file = new File("C:\\demo\\studentdata.xlsx");  
            FileInputStream fis = new FileInputStream(file);  
            //creating Workbook instance that refers to .xlsx file  
            XSSFWorkbook wb = new XSSFWorkbook(fis);   
            XSSFSheet sheet = wb.getSheetAt(0); 
            Iterator<Row> itr = sheet.iterator();
            while (itr.hasNext()) {  
                Row row = itr.next();  
                Iterator<Cell> cellIterator = row.cellIterator();   //iterating over each column  
                while (cellIterator.hasNext()) {  
                    Cell cell = cellIterator.next();  
                    switch (cell.getCellType()) {  
                        case Cell.CELL_TYPE_NUMERIC: //field that represents numeric cell type  
                            //getting the value of the cell as a number  
                            System.out.print(cell.getNumericCellValue() + "\t\t");   
                            break;
                        case Cell.CELL_TYPE_STRING: //field that represents string cell type  
                            //getting the value of the cell as a string  
                            System.out.print(cell.getStringCellValue() + "\t\t");  
                            break;
                    }
                }
                System.out.println("");  
            }  
        } catch(Exception e) {  
            e.printStackTrace();  
        }
    }
}
JAVA

Output:

IdNames
1Zeeshan
2Shoaib
3Umar
4Rizwan
5Ahsan

La bibliothèque IronXL C

IronXL est une bibliothèque .NET autonome qui facilite la lecture et l'édition de documents Microsoft Excel avec C#. Il ne nécessite pas l'installation de Microsoft Excel et ne dépend pas d'Interop.

Grâce à IronXL, les développeurs peuvent effectuer tous les calculs liés à Excel sans effort, en écrivant simplement quelques lignes de code et en bénéficiant de performances rapides. Il peut s'agir de tâches telles que l'ajout de deux cellules, le calcul du total général d'une colonne, l'ajout d'une colonne entière à un tableau Excel, l'ajout d'une ligne entière à un tableau Excel, les sommations de colonnes à une ou plusieurs lignes, ou de nombreuses autres tâches facilitées par le logiciel IronXLcaractéristiques utiles.

IronXL prend complètement en charge le Framework .NET, .NET Core, Mobile, Xamarin, Azure Linux et MacOS.

L'ensemble des fonctionnalités d'IronXL

  • Chargement, lecture et modification de données à partir de XLS/XLSX/CSV/TSV.
  • Enregistrement et exportation vers XLS/XLSX/CSV/TSV/JSON.
  • objets System.Data - travailler avec des feuilles de calcul Excel en tant qu'objets System.Data.DataSet et System.Data.DataTable.
  • Formules - permet de travailler avec des formules Excel.
  • Plaques de cuisson - \N["A1:B10] la syntaxe est facile à utiliser.
  • Tri - permet de trier les lignes, les colonnes et les plages.
  • Style - styles visuels, police et taille de police, motif d'arrière-plan, bordure, alignement et formats de chiffres.

    Voici un exemple de code de lecture d'un fichier Excel en C# à l'aide d'IronXL :

using IronXL;
using System.Linq;

//Supported spreadsheet formats for reading include: XLSX, XLS, CSV and TSV
WorkBook workbook = WorkBook.Load("test.xlsx");
WorkSheet sheet = workbook.WorkSheets.First();

//Select cells easily in Excel notation and return the calculated value
int cellValue = sheet ["A2"].IntValue;

// Read from Ranges of cells elegantly.
foreach (var cell in sheet ["A2:A10"]) {
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
using IronXL;
using System.Linq;

//Supported spreadsheet formats for reading include: XLSX, XLS, CSV and TSV
WorkBook workbook = WorkBook.Load("test.xlsx");
WorkSheet sheet = workbook.WorkSheets.First();

//Select cells easily in Excel notation and return the calculated value
int cellValue = sheet ["A2"].IntValue;

// Read from Ranges of cells elegantly.
foreach (var cell in sheet ["A2:A10"]) {
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
Imports IronXL
Imports System.Linq

'Supported spreadsheet formats for reading include: XLSX, XLS, CSV and TSV
Private workbook As WorkBook = WorkBook.Load("test.xlsx")
Private sheet As WorkSheet = workbook.WorkSheets.First()

'Select cells easily in Excel notation and return the calculated value
Private cellValue As Integer = sheet ("A2").IntValue

' Read from Ranges of cells elegantly.
For Each cell In sheet ("A2:A10")
	Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text)
Next cell
VB   C#

Travailler avec IronXL facilite grandement le travail des développeurs. Son code simple et facile à utiliser rend le logiciel moins sujet aux bogues lorsqu'il travaille avec des fichiers Excel.

Télécharger IronXL et utilisez-le dans vos projets dès aujourd'hui.

< PRÉCÉDENT
Testez vos modèles de regex avec .NET Regex Tester
SUIVANT >
Comment changer de colonne dans Excel