using IronXL;
using System;
using System.Linq;
// Supported for XLSX, XLS, XLSM, XLTX, CSV and TSV
WorkBook workBook = WorkBook.Load("sample.xlsx");
// Select worksheet at index 0
WorkSheet workSheet = workBook.WorkSheets[0];
// Get any existing worksheet
WorkSheet firstSheet = workBook.DefaultWorkSheet;
// Select a cell and return the converted value
int cellValue = workSheet["A2"].IntValue;
// Read from ranges of cells elegantly.
foreach (var cell in workSheet["A2:A10"])
{
Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
// Calculate aggregate values such as Min, Max and Sum
decimal sum = workSheet["A2:A10"].Sum();
// Linq compatible
decimal max = workSheet["A2:A10"].Max(c => c.DecimalValue);
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.
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.
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 :
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 :
Le fichier Excel qui sera lu
Étapes pour lire un fichier Excel en Java
Créez un projet Java en utilisant n'importe quel IDE Java. Nous utiliserons Netbeans pour ce projet.
Ensuite, créez un dossier lib dans le projet.
Ensuite, ajoutez les fichiers JAR téléchargés au dossier lib créé à l'étape précédente.
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.
Créons maintenant un fichier de classe portant le nom ReadExcelFileDemo.
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();
}
}
}
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();
}
}
}
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
$vbLabelText $csharpLabel
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.
Avant de devenir ingénieur logiciel, Kannapat a obtenu un doctorat en ressources environnementales à l'université d'Hokkaido au Japon. Tout en poursuivant ses études, Kannapat est également devenu membre du Vehicle Robotics Laboratory, qui fait partie du Department of Bioproduction Engineering (département d'ingénierie de la bioproduction). En 2022, il a mis à profit ses compétences en C# pour rejoindre l'équipe d'ingénieurs d'Iron Software, où il se concentre sur IronPDF. Kannapat apprécie son travail car il apprend directement auprès du développeur qui écrit la majeure partie du code utilisé dans IronPDF. Outre l'apprentissage par les pairs, Kannapat apprécie l'aspect social du travail chez Iron Software. Lorsqu'il n'écrit pas de code ou de documentation, Kannapat peut généralement être trouvé en train de jouer sur sa PS5 ou de revoir The Last of Us.
< PRÉCÉDENT Testez vos modèles de regex avec .NET Regex Tester
Des millions d'ingénieurs dans le monde entier lui font confiance
Réservez une démo en direct gratuite
Réservez une démonstration personnelle de 30 minutes.
Pas de contrat, pas de détails de carte, pas d'engagements.
Voici ce à quoi vous pouvez vous attendre :
Une démonstration en direct de notre produit et de ses principales fonctionnalités
Obtenez des recommandations de fonctionnalités spécifiques au projet
Toutes vos questions trouvent réponse pour vous assurer de disposer de toutes les informations dont vous avez besoin. (Aucune obligation de votre part.)
CHOISIR L'HEURE
VOS INFORMATIONS
Réservez votre gratuit Démonstration en direct
Fiable par plus de 2 millions d'ingénieurs dans le monde entier