Programmering

Utmerker seg i Excel med Java

Enten du har balanser, nedlastinger av kontoinformasjon, skatteberegninger eller lønnsslipp, har de alle en tendens til å komme i Microsoft Excel. Ikke-IT-fagpersoner føler seg komfortable med å bruke Microsoft Excel som datautvekslingsteknologi. Jakarta POI (Poor Obfuscation Implementation) API er en fantastisk måte for Java-programmerere å få tilgang til Microsoft dokumentformater. Den mest modne API-en fra Jakarta POI er HSSF (Horrible Spreadsheet Format) API, som får tilgang til Microsoft Excel-dokumenter.

I denne artikkelen går jeg gjennom trinnene for å opprette og lese Excel-dokumenter, og for bruk av skrifttyper og cellestyling - alt ved bruk av Java.

Merk: Du kan laste ned kildekoden for alle eksemplene i denne artikkelen fra Resources.

POI terminologi

Nøkkelbetingelsene knyttet til Jakarta POI er som følger:

  • POIFS (Dårlig filsystem for implementering av obfuscation Implementation): Java APIer for lesing og skriving av OLE (Object Linking and Embedding) 2 sammensatte dokumentformater
  • HSSF (Horrible Spreadsheet Format): Java API for å lese Microsoft Excel
  • HDF (Horrible Document Format): Java API for å lese og skrive Microsoft Word 97
  • HPSF (Horrible Property Set Format): Java API for å lese eiendomssett ved bruk av (bare) Java

Lag et Excel-dokument

Jakarta POI API kan brukes til å lage et Excel-dokument programmatisk. De viktige trinnene som er involvert er:

  • Lag en arbeidsbok: HSSFWorkbook arbeidsbok = ny HSSFWorkbook ();
  • Lag et nytt regneark i arbeidsboken og gi navnet på regnearket "Java Excels": HSSFSheet sheet = workbook.createSheet ("Java Excels");
  • Opprett en ny rad i arket: HSSFRow rad = sheet.createRow ((kort) 0);
  • Opprett en celle i raden: HSSFCell celle = row.createCell ((kort) 0);
  • Sett innhold i cellen: cell.setCellValue ("Ha en kopp XL");
  • Skriv arbeidsboken i filsystemet: arbeidsbok.write (fileOutputStream);

Les data fra Excel-dokumentet

I dette eksemplet ser du hvordan du leser verdier fra et Excel-dokument.

La oss anta at dette er vårt Excel-ark:

ansattes navnSpesialiseringBetegnelse
AnbuProgrammeringSenior programmerer
JasonBankindustriForretningsanalytiker
RameshDatabaserDBA
MackyBRegnskapLeveringshode

De viktigste trinnene i å lese Excel-arket er som følger:

  • Opprett en ny Excel-dokumentreferanse: HSFWorkbook arbeidsbok = ny HSSFWorkbook (ny FileInputStream (fileToBeRead));.
  • Se arket: Som standard er det første arket i Excel-dokumentet som referanse 0: HSSFSheetark = arbeidsbok.getSheetAt (0);. Et ark kan også refereres til med navn. La oss anta at Excel-arket har standardnavnet "Sheet1". Det kan refereres til som følger: HSSFSheetark = arbeidsbok.getSheet ("Ark1");.
  • Se en rad: HSSFRow rad = ark.getRow (0);.
  • Henvis til en celle i raden: HSSFCell celle = rad.getCell ((kort) 0);.
  • Få verdiene i den cellen: cell.getStringCellValue ();.

Et praktisk eksempel

La oss anta at vi vil se listen over alle deklarerte metoder og medlemsvariabler i en jar-fil. Det ville være ideelt å ha en samlet liste over all informasjon i en enkelt fil. Vi vil se informasjonen slik at klassenavnene er i den første kolonnen, deklarerte felt i den andre kolonnen og deklarerte metoder i den tredje kolonnen, med kolonneoverskriftene vises i rødt.

Programmet må fullføre følgende aktiviteter:

  • Pakk ut jar-filen
  • Les alle klassefiler i jar-filen
  • Last inn klassene i jar-filen
  • Bruk refleksjon til å få deklarerte metodene og feltene
  • Skriv kursinformasjonen i et Excel-ark ved hjelp av Jakarta POI

La oss konsentrere oss om bare de interessante trinnene i bruk av Jakarta POI:

  • Opprett et nytt Excel-dokument: arbeidsbok = ny HSSFWorkbook ();
  • Lag et regneark i dokumentet og gi regnearket et navn: sheet = workbook.createSheet ("Java Class Info");
  • Angi bredden på de tre første kolonnene: sheet.setColumnWidth ((kort) 0, (kort) 10000);
  • Lag topptekstlinjen: HSSFRow rad = sheet.createRow ((kort) 0);
  • Opprett og angi skrift- og cellestil:
     HSSFFont font = arbeidsbok.createFont (); font.setColor (HSSFFont.COLOR_RED); font.setBoldweight (HSSFFont.BOLDWEIGHT_BOLD); // Lag stilen HSSFCellStyle cellStyle = arbeidsbok.createCellStyle (); cellStyle.setFont (font); 
  • Bruk cellestilen:
     HSSFCell celle = row.createCell ((kort) 0); cell.setCellStyle (cellStyle); cell.setCellType (HSSFCell.CELL_TYPE_STRING); cell.setCellValue ("Klassenavn"); 
  • Skriv utdatafilen:
     FileOutputStream fOut = ny FileOutputStream (outputFile); // Skriv Excel-ark arbeidsbok.write (fOut); fOut.flush (); // Det er i boks. Lukk den. fOut.close (); 

Sammendrag

Som demonstrert i denne artikkelen, trenger Java-utviklere ikke lenger å vri seg på data i Excel-ark. Vi har programmatisk tilgang til Excel-dokumenter. Ta en kopp Java, og utmerke deg i Excel!

Elango Sundaram er en erfaren Java-programmerer med forskningsinteresser innen distribuert databehandlingsarkitektur, agentbasert teknologi og objektorientert metodikk. Han har en mastergrad i informatikk fra Virginia Tech University og har skrevet Distribuert databehandling ved hjelp av Jini og Websphere Studio Application Developer Tail Plug-in (for WSAD 4.0).

Lær mer om dette emnet

  • Last ned kildekoden som følger med denne artikkelen

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

  • Jakarta POI-nettsted

    //jakarta.apache.org/poi/

  • For mer informasjon om interessepunkter, les "It's POI-fect," Tony Sintes (JavaWorld, Mai 2002)

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

  • For flere Java-verktøy, bla gjennom Utviklingsverktøy seksjon av JavaWorld 's Aktuell indeks

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

  • For flere artikler om open source-verktøy, se Erik Swensons Åpen kildekodeprofil kolonne

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

Denne historien, "Excelling in Excel with Java" ble opprinnelig utgitt av JavaWorld.

$config[zx-auto] not found$config[zx-overlay] not found