Exceller dans Excel avec Java

Que vous ayez des bilans, des téléchargements d'informations sur les comptes, des calculs de taxes ou des fiches de paie, ils ont tous tendance à venir dans Microsoft Excel. Les professionnels non informatiques se sentent à l'aise d'utiliser Microsoft Excel comme technologie d'échange de données. L'API Jakarta POI (Poor Obfuscation Implementation) est un moyen fantastique pour les programmeurs Java d'accéder aux formats de documents Microsoft. L'API la plus mature de Jakarta POI est l'API HSSF (Horrible Spreadsheet Format), qui accède aux documents Microsoft Excel.

Dans cet article, je vous guide à travers les étapes de création et de lecture de documents Excel, et d'utilisation des polices et du style de cellule, le tout à l'aide de Java.

Remarque: vous pouvez télécharger le code source de tous les exemples de cet article à partir de Resources.

Terminologie des POI

Les termes clés associés à Jakarta POI sont les suivants:

  • POIFS (Poor Obfuscation Implementation File System): API Java pour la lecture et l'écriture de formats de documents composés OLE (Object Linking and Embedding) 2
  • HSSF (Horrible Spreadsheet Format): API Java pour lire Microsoft Excel
  • HDF (Horrible Document Format): API Java pour lire et écrire Microsoft Word 97
  • HPSF (Horrible Property Set Format): API Java pour lire les jeux de propriétés en utilisant (uniquement) Java

Créer un document Excel

L'API Jakarta POI peut être utilisée pour créer un document Excel par programme. Les étapes importantes impliquées sont:

  • Créez un classeur: HSSFWorkbook workbook = new HSSFWorkbook();
  • Créez une nouvelle feuille de calcul dans le classeur et nommez la feuille de calcul "Java Excels": HSSFSheet sheet = workbook.createSheet("Java Excels");
  • Créez une nouvelle ligne dans la feuille: HSSFRow row = sheet.createRow((short)0);
  • Créez une cellule dans la ligne: HSSFCell cell = row.createCell((short) 0);
  • Mettez du contenu dans la cellule: cell.setCellValue("Have a Cup of XL");
  • Écrivez le classeur dans le système de fichiers: workbook.write(fileOutputStream);

Lire les données du document Excel

Dans cet exemple, vous verrez comment lire les valeurs d'un document Excel.

Supposons qu'il s'agit de notre feuille Excel:

Nom de l'employé Spécialisation La désignation
Anbu La programmation Programmeur senior
Jason L'industrie banquaire Analyste d'affaires
Ramesh Bases de données DBA
MackyB Comptabilité Chef de livraison

Les étapes clés de la lecture de la feuille Excel sont les suivantes:

  • Créer une nouvelle référence de document Excel: HSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(fileToBeRead));.
  • Reportez - vous à la feuille: Par défaut, la première feuille dans le document Excel est à la référence 0: HSSFSheet sheet = workbook.getSheetAt(0);. Une feuille peut également être désignée par son nom. Supposons que la feuille Excel porte le nom par défaut "Sheet1". Il peut être appelé comme suit: HSSFSheet sheet = workbook.getSheet("Sheet1");.
  • Reportez - vous à une ligne: HSSFRow row = sheet.getRow(0);.
  • Reportez - vous à une cellule de la ligne: HSSFCell cell = row.getCell((short)0);.
  • Obtenez les valeurs de cette cellule: cell.getStringCellValue();.

Un exemple pratique

Supposons maintenant que nous souhaitons voir la liste de toutes les méthodes et variables membres déclarées dans un fichier jar. Il serait idéal d'avoir une liste consolidée de toutes les informations dans un seul fichier. Nous aimerions afficher les informations afin que les noms de classe soient dans la première colonne, les champs déclarés dans la deuxième colonne et les méthodes déclarées dans la troisième colonne, avec les en-têtes de colonne apparaissant en rouge.

Le programme devra compléter les activités suivantes:

  • Décompressez le fichier jar
  • Lire tous les fichiers de classe dans le fichier jar
  • Chargez les classes dans le fichier jar
  • En utilisant la réflexion, récupérez les méthodes et les champs déclarés
  • Écrivez les informations de la classe dans une feuille Excel en utilisant Jakarta POI

Concentrons-nous uniquement sur les étapes intéressantes de l'utilisation des POI de Jakarta:

  • Créez un nouveau document Excel: workbook = new HSSFWorkbook();
  • Créez une feuille de calcul dans ce document et donnez un nom à la feuille de calcul: sheet = workbook.createSheet("Java Class Info");
  • Définissez les largeurs des trois premières colonnes: sheet.setColumnWidth((short)0,(short)10000 );
  • Créez la ligne d'en-tête: HSSFRow row = sheet.createRow((short)0);
  • Créez et définissez la police et le style de cellule:
    HSSFFont font = classeur.createFont (); font.setColor (HSSFFont.COLOR_RED); font.setBoldweight (HSSFFont.BOLDWEIGHT_BOLD); // Créer le style HSSFCellStyle cellStyle = workbook.createCellStyle (); cellStyle.setFont (police);
  • Utilisez le style de cellule:
    Cellule HSSFCell = row.createCell ((short) 0); cell.setCellStyle (cellStyle); cell.setCellType (HSSFCell.CELL_TYPE_STRING); cell.setCellValue ("Nom de classe");
  • Écrivez le fichier de sortie:
    FileOutputStream fOut = nouveau FileOutputStream (outputFile); // Ecrire le classeur de feuille Excel.write (fOut); fOut.flush (); // Accord terminé. Ferme le. fOut.close ();

Sommaire

Comme démontré dans cet article, les développeurs Java n'ont plus besoin de grimacer devant les données des feuilles Excel. Nous pouvons accéder par programme aux documents Excel. Avoir une tasse de Java et exceller dans Excel!

Elango Sundaram est un programmeur Java expérimenté avec des intérêts de recherche dans l'architecture informatique distribuée, la technologie basée sur les agents et la méthodologie orientée objet. Il est titulaire d'une maîtrise en informatique de la Virginia Tech University et a écrit sur l'informatique distribuée en utilisant Jini et Websphere Studio Application Developer Tail Plug-in (pour WSAD 4.0).

En savoir plus sur ce sujet

  • Téléchargez le code source qui accompagne cet article

    //images.techhive.com/downloads/idge/imported/article/jvw/2004/03/jw-0322-poi.zip

  • Le site Web de Jakarta POI

    //jakarta.apache.org/poi/

  • Pour en savoir plus sur les POI, lisez «It's POI-fect», Tony Sintes ( JavaWorld, mai 2002)

    //www.javaworld.com/javaworld/javaqa/2002-05/01-qa-0503-excel3.html

  • Pour plus d 'outils Java, parcourez la section Outils de développement de l' index thématique de JavaWorld

    //www.javaworld.com/channel_content/jw-tools-index.shtml

  • Pour plus d'articles sur les outils open source, voir la colonne Open Source Profile d' Erik Swenson

    //www.javaworld.com/columns/jw-opensource-index.shtml

Cette histoire, «Exceller dans Excel avec Java» a été initialement publiée par JavaWorld.