Programmering

Fremragende i Excel med Java

Uanset om du har balance, download af kontooplysninger, skatteberegninger eller lønsedler, har de alle en tendens til at komme i Microsoft Excel. Ikke-it-fagfolk har det godt med at bruge Microsoft Excel som en dataudvekslingsteknologi. Jakarta POI (Poor Obfuscation Implementation) API er en fantastisk måde for Java-programmører at få adgang til Microsoft-dokumentformater. Den mest modne API fra Jakarta POI er HSSF (Horrible Spreadsheet Format) API, som har adgang til Microsoft Excel-dokumenter.

I denne artikel gennemgår jeg trinene til oprettelse og læsning af Excel-dokumenter og til brug af skrifttyper og cellestyling - alt sammen ved hjælp af Java.

Bemærk: Du kan downloade kildekoden til alle eksemplerne i denne artikel fra Resources.

POI-terminologi

Nøgleudtrykkene forbundet med Jakarta POI er som følger:

  • POIFS (dårligt filsystem til implementering af obfuscation): Java API'er til læsning og skrivning af OLE (Object Linking and Embedding) 2 sammensatte dokumentformater
  • HSSF (Horrible Spreadsheet Format): Java API til at læse Microsoft Excel
  • HDF (Horrible Document Format): Java API til at læse og skrive Microsoft Word 97
  • HPSF (Horrible Property Set Format): Java API til læsning af egenskabssæt ved hjælp af (kun) Java

Opret et Excel-dokument

Jakarta POI API kan bruges til at oprette et Excel-dokument programmatisk. De vigtige trin involveret er:

  • Opret en projektmappe: HSSFWorkbook-projektmappe = ny HSSFWorkbook ();
  • Opret et nyt regneark i projektmappen, og navngiv regnearket "Java Excels": HSSFSheet sheet = workbook.createSheet ("Java excels");
  • Opret en ny række i arket: HSSFRow række = sheet.createRow ((kort) 0);
  • Opret en celle i rækken: HSSFCell celle = række.createCell ((kort) 0);
  • Sæt noget indhold i cellen: cell.setCellValue ("Har en kop XL");
  • Skriv projektmappen i filsystemet: workbook.write (fileOutputStream);

Læs data fra Excel-dokumentet

I dette eksempel kan du se, hvordan du læser værdier fra et Excel-dokument.

Lad os antage, at dette er vores Excel-ark:

Ansattes navnSpecialiseringBetegnelse
AnbuProgrammeringSenior programmerer
JasonBankindustriBusiness analytiker
RameshDatabaserDBA
MackyBRegnskabLeveringshoved

De vigtigste trin i læsning af Excel-arket er som følger:

  • Opret en ny Excel-dokumentreference: HSFWorkbook-projektmappe = ny HSSFWorkbook (ny FileInputStream (fileToBeRead));.
  • Se arket: Som standard er det første ark i Excel-dokumentet som reference 0: HSSFSheet-ark = projektmappe.getSheetAt (0);. Et ark kan også henvises til ved navn. Lad os antage, at Excel-arket har standardnavnet "Sheet1". Det kan henvises til som følger: HSSFSheet-ark = projektmappe.getSheet ("Ark1");.
  • Se en række: HSSFRow række = ark.getRow (0);.
  • Henvis til en celle i rækken: HSSFCell celle = række.getCell ((kort) 0);.
  • Få værdierne i den celle: cell.getStringCellValue ();.

Et praktisk eksempel

Lad os antage, at vi vil se listen over alle deklarerede metoder og medlemsvariabler i en jar-fil. Det ville være ideelt at have en samlet liste over alle oplysninger i en enkelt fil. Vi vil gerne se oplysningerne, så klassens navne er i den første kolonne, deklarerede felter i den anden kolonne og deklarerede metoder i den tredje kolonne, med kolonneoverskrifterne vises i rødt.

Programmet skal gennemføre følgende aktiviteter:

  • Pak jar-filen ud
  • Læs alle klassefiler i jar-filen
  • Indlæs klasserne i jar-filen
  • Brug reflektion til at få de erklærede metoder og felter
  • Skriv klasseoplysningerne i et Excel-ark ved hjælp af Jakarta POI

Lad os koncentrere os om bare de interessante trin i Jakarta POI-brug:

  • Opret et nyt Excel-dokument: projektmappe = ny HSSFWorkbook ();
  • Lav et regneark i det dokument, og giv regnearket et navn: sheet = workbook.createSheet ("Java Class Info");
  • Indstil de første tre kolonners bredder: sheet.setColumnWidth ((kort) 0, (kort) 10000);
  • Opret overskriftslinjen: HSSFRow række = sheet.createRow ((kort) 0);
  • Opret og indstil skrifttype og celleformat:
     HSSFFont skrifttype = workbook.createFont (); font.setColor (HSSFFont.COLOR_RED); font.setBoldweight (HSSFFont.BOLDWEIGHT_BOLD); // Opret stilen HSSFCellStyle cellStyle = workbook.createCellStyle (); cellStyle.setFont (skrifttype); 
  • Brug cellestilen:
     HSSFCell celle = række.createCell ((kort) 0); cell.setCellStyle (cellStyle); cell.setCellType (HSSFCell.CELL_TYPE_STRING); cell.setCellValue ("Klassens navn"); 
  • Skriv outputfilen:
     FileOutputStream fOut = ny FileOutputStream (outputFile); // Skriv Excel-arkets arbejdsbog.write (fOut); fOut.flush (); // Udført aftale. Luk det. fOut.close (); 

Resumé

Som det fremgår af denne artikel, behøver Java-udviklere ikke længere at vride sig til data i Excel-ark. Vi kan programmatisk få adgang til Excel-dokumenter. Har en kop Java, og udmærker sig i Excel!

Elango Sundaram er en erfaren Java-programmør med forskningsinteresser inden for distribueret databehandling, agentbaseret teknologi og objektorienteret metode. Han har en kandidatgrad i datalogi fra Virginia Tech University og har skrevet Distribueret computing ved hjælp af Jini og Websphere Studio Application Developer Tail Plug-in (til WSAD 4.0).

Lær mere om dette emne

  • Download kildekoden, der ledsager denne artikel

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

  • Jakarta POI-websted

    //jakarta.apache.org/poi/

  • Læs mere om interessepunkter i "It's POI-fect", Tony Sintes (JavaWorld, Maj 2002)

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

  • Se flere Java-værktøjer Udviklingsværktøjer sektion af JavaWorld 's Aktuelt indeks

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

  • For flere artikler om open source-værktøjer, se Erik Swensons Open Source-profil kolonne

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

Denne historie, "Excelling in Excel with Java", blev oprindeligt udgivet af JavaWorld.