Obtenir la valeur de chaîne de la cellule Excel avec Apache POI

1. Vue d'ensemble

Une cellule Microsoft Excel peut avoir différents types tels que chaîne, numérique, booléen et formule.

Dans ce rapide tutoriel, nous montrerons comment lire la valeur de la cellule sous forme de chaîne - quel que soit le type de cellule - avec Apache POI.

2. POI Apache

Pour commencer, nous devons d'abord ajouter la dépendance poi à notre fichier projet pom.xml :

 org.apache.poi poi 4.1.1 

Apache POI utilise l' interface du classeur pour représenter un fichier Excel. Il utilise également des interfaces de feuille , de ligne et de cellule pour modéliser différents niveaux d'éléments dans un fichier Excel. Au niveau Cell , nous pouvons utiliser sa méthode getCellType () pour obtenir le type de cellule. Apache POI prend en charge les types de cellules suivants:

  • VIDE
  • BOOLÉEN
  • ERREUR
  • FORMULE
  • NUMÉRIQUE
  • CHAÎNE

Si nous voulons afficher le contenu du fichier Excel à l'écran, nous aimerions obtenir la représentation sous forme de chaîne d'une cellule, au lieu de sa valeur brute. Par conséquent, pour les cellules qui ne sont pas de type STRING, nous devons convertir leurs données en valeurs de chaîne .

3. Obtenir la valeur de la chaîne de cellule

Nous pouvons utiliser DataFormatter pour récupérer la valeur de chaîne d'une cellule Excel. Il peut obtenir une représentation sous forme de chaîne de la valeur stockée dans une cellule. Par exemple, si la valeur numérique d'une cellule est 1,234 et que la règle de format de cette cellule est de deux décimales, nous obtiendrons la représentation sous forme de chaîne «1,23»:

Cell cell = // a numeric cell with value of 1.234 and format rule "0.00" DataFormatter formatter = new DataFormatter(); String strValue = formatter.formatCellValue(cell); assertEquals("1.23", strValue);

Par conséquent, le résultat de DataFormatter.formatCellValue () est la chaîne d'affichage exactement telle qu'elle apparaît dans Excel.

4. Obtenir la valeur de chaîne d'une cellule de formule

Si le type de cellule est FORMULE, la méthode précédente renverra la chaîne de formule d'origine au lieu de la valeur de formule calculée. Par conséquent, pour obtenir la représentation sous forme de chaîne de la valeur de formule, nous devons utiliser FormulaEvaluator pour évaluer la formule :

Workbook workbook = // existing Workbook setup FormulaEvaluator evaluator = workbook.getCreationHelper().createFormulaEvaluator(); Cell cell = // a formula cell with value of "SUM(1,2)" DataFormatter formatter = new DataFormatter(); String strValue = formatter.formatCellValue(cell, evaluator); assertEquals("3", strValue);

Cette méthode est générale pour tous les types de cellules. Si le type de cellule est FORMULA, nous l'évaluerons à l'aide du FormulaEvaluator donné . Sinon, nous retournerons la représentation sous forme de chaîne sans aucune évaluation.

5. Résumé

Dans cet article rapide, nous avons montré comment obtenir la représentation sous forme de chaîne d'une cellule Excel, quel que soit son type. Comme toujours, le code source de l'article est disponible à l'adresse over sur GitHub.