Hervorragend in Excel mit Java

Unabhängig davon, ob Sie Bilanzen, Downloads von Kontoinformationen, Steuerberechnungen oder Gehaltsabrechnungen haben, werden diese in der Regel in Microsoft Excel bereitgestellt. Nicht-IT-Experten fühlen sich mit Microsoft Excel als Datenaustauschtechnologie wohl. Die Jakarta POI-API (Poor Obfuscation Implementation) ist eine fantastische Möglichkeit für Java-Programmierer, auf Microsoft-Dokumentformate zuzugreifen. Die ausgereifteste API von Jakarta POI ist die HSSF-API (Horrible Spreadsheet Format), die auf Microsoft Excel-Dokumente zugreift.

In diesem Artikel führe ich Sie durch die Schritte zum Erstellen und Lesen von Excel-Dokumenten sowie zum Verwenden von Schriftarten und Zellenstil - alles unter Verwendung von Java.

Hinweis: Sie können den Quellcode für alle Beispiele in diesem Artikel unter Ressourcen herunterladen.

POI-Terminologie

Die mit dem POI von Jakarta verbundenen Schlüsselbegriffe lauten wie folgt:

  • POIFS (Poor Obfuscation Implementation File System): Java-APIs zum Lesen und Schreiben von OLE (Object Linking and Embedding) 2 zusammengesetzten Dokumentformaten
  • HSSF (Horrible Spreadsheet Format): Java-API zum Lesen von Microsoft Excel
  • HDF (Horrible Document Format): Java-API zum Lesen und Schreiben von Microsoft Word 97
  • HPSF (Horrible Property Set Format): Java-API zum Lesen von Eigenschaftssätzen mit (nur) Java

Erstellen Sie ein Excel-Dokument

Mit der Jakarta POI-API kann programmgesteuert ein Excel-Dokument erstellt werden. Die wichtigsten Schritte sind:

  • Erstellen Sie eine Arbeitsmappe: HSSFWorkbook workbook = new HSSFWorkbook();
  • Erstellen Sie ein neues Arbeitsblatt in der Arbeitsmappe und nennen Sie das Arbeitsblatt "Java Excels": HSSFSheet sheet = workbook.createSheet("Java Excels");
  • Erstellen Sie eine neue Zeile im Blatt: HSSFRow row = sheet.createRow((short)0);
  • Erstellen Sie eine Zelle in der Zeile: HSSFCell cell = row.createCell((short) 0);
  • Fügen Sie einige Inhalte in die Zelle ein: cell.setCellValue("Have a Cup of XL");
  • Schreiben Sie die Arbeitsmappe in das Dateisystem: workbook.write(fileOutputStream);

Lesen Sie Daten aus dem Excel-Dokument

In diesem Beispiel sehen Sie, wie Sie Werte aus einem Excel-Dokument lesen.

Nehmen wir an, dies ist unsere Excel-Tabelle:

Mitarbeitername Spezialisierung Bezeichnung
Anbu Programmierung Senior-Programmierer
Jason Bankenindustrie Business Analyst
Ramesh Datenbanken DBA
MackyB Buchhaltung Lieferkopf

Die wichtigsten Schritte beim Lesen der Excel-Tabelle lauten wie folgt:

  • Erstellen Sie eine neue Excel-Dokumentreferenz : HSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(fileToBeRead));.
  • Siehe Blatt: Standardmäßig befindet sich das erste Blatt im Excel-Dokument unter Referenz 0 : HSSFSheet sheet = workbook.getSheetAt(0);. Ein Blatt kann auch namentlich bezeichnet werden. Nehmen wir an, dass die Excel-Tabelle den Standardnamen "Sheet1" hat. Es kann wie folgt bezeichnet werden : HSSFSheet sheet = workbook.getSheet("Sheet1");.
  • Beziehen Sie sich auf eine Zeile : HSSFRow row = sheet.getRow(0);.
  • Beziehen Sie sich auf eine Zelle in der Zeile : HSSFCell cell = row.getCell((short)0);.
  • Holen Sie sich die Werte in dieser Zelle : cell.getStringCellValue();.

Ein praktisches Beispiel

Nehmen wir nun an, wir möchten die Liste aller deklarierten Methoden und Mitgliedsvariablen in einer JAR-Datei sehen. Es wäre ideal, eine konsolidierte Liste aller Informationen in einer einzigen Datei zu haben. Wir möchten die Informationen so anzeigen, dass sich die Klassennamen in der ersten Spalte, die deklarierten Felder in der zweiten Spalte und die deklarierten Methoden in der dritten Spalte befinden und die Spaltenüberschriften rot angezeigt werden.

Das Programm muss die folgenden Aktivitäten ausführen:

  • Entpacken Sie die JAR-Datei
  • Lesen Sie alle Klassendateien in der JAR-Datei
  • Laden Sie die Klassen in die JAR-Datei
  • Rufen Sie mithilfe von Reflection die deklarierten Methoden und Felder ab
  • Schreiben Sie die Klasseninformationen mit Jakarta POI in eine Excel-Tabelle

Konzentrieren wir uns nur auf die interessanten Schritte der Verwendung des POI in Jakarta:

  • Erstellen Sie ein neues Excel-Dokument: workbook = new HSSFWorkbook();
  • Make a worksheet in that document and give the worksheet a name: sheet = workbook.createSheet("Java Class Info");
  • Set the first three columns' widths: sheet.setColumnWidth((short)0,(short)10000 );
  • Create the header line: HSSFRow row = sheet.createRow((short)0);
  • Create and set font and cell style:
     HSSFFont font = workbook.createFont(); font.setColor(HSSFFont.COLOR_RED); font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); // Create the style HSSFCellStyle cellStyle= workbook.createCellStyle(); cellStyle.setFont(font); 
  • Use the cell style:
     HSSFCell cell = row.createCell((short) 0); cell.setCellStyle(cellStyle); cell.setCellType(HSSFCell.CELL_TYPE_STRING); cell.setCellValue("Class Name "); 
  • Write the output file:
     FileOutputStream fOut = new FileOutputStream(outputFile); // Write the Excel sheet workbook.write(fOut); fOut.flush(); // Done deal. Close it. fOut.close(); 

Summary

Wie in diesem Artikel gezeigt, müssen Java-Entwickler nicht mehr bei Daten in Excel-Tabellen zusammenzucken. Wir können programmgesteuert auf Excel-Dokumente zugreifen. Trinken Sie eine Tasse Java und zeichnen Sie sich in Excel aus!

Elango Sundaram ist ein erfahrener Java-Programmierer mit Forschungsinteressen in Bezug auf verteilte Computerarchitektur, agentenbasierte Technologie und objektorientierte Methodik. Er hat einen Master-Abschluss in Informatik von der Virginia Tech University und hat Distributed Computing mit dem Tail Plug-In von Jini und Websphere Studio Application Developer (für WSAD 4.0) geschrieben.

Erfahren Sie mehr über dieses Thema

  • Laden Sie den Quellcode herunter, der diesem Artikel beiliegt

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

  • Die Jakarta POI Website

    //jakarta.apache.org/poi/

  • Weitere Informationen zum POI finden Sie unter "Es ist POI-fekt", Tony Sintes ( JavaWorld, Mai 2002).

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

  • Weitere Java- Tools finden Sie im Abschnitt Entwicklungstools des aktuellen Index von JavaWorld

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

  • Weitere Artikel zu Open Source-Tools finden Sie in der Spalte Open Source-Profil von Erik Swenson

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

Diese Geschichte "Hervorragend in Excel mit Java" wurde ursprünglich von JavaWorld veröffentlicht.