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:
|
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.