Ať už máte rozvahy, stahování informací o účtu, výpočty daní nebo výplatní pásky, všechny obvykle přicházejí v aplikaci Microsoft Excel. Non-IT profesionálové se cítí pohodlně používat Microsoft Excel jako technologii pro výměnu dat. Jakarta POI (Poor Obfuscation Implementation) API je fantastický způsob, jak mohou programátoři Java přistupovat k formátům dokumentů Microsoft. Nejzralejší API z Jakartského POI je HSSF (Horrible Spreadsheet Format) API, které přistupuje k dokumentům Microsoft Excel.
V tomto článku vás provedu kroky pro vytváření a čtení dokumentů aplikace Excel a pro používání písem a stylů buněk - vše pomocí jazyka Java.
Poznámka: Zdrojový kód pro všechny příklady v tomto článku si můžete stáhnout ze zdrojů.
Terminologie POI
Klíčové pojmy spojené s bodem POI v Jakartě jsou následující:
- POIFS (Poor Obfuscation Implementation File System): Java API pro čtení a zápis OLE (Object Linking and Embedding) 2 formáty složených dokumentů
- HSSF (hrozný formát tabulky): Java API pro čtení Microsoft Excel
- HDF (hrozný formát dokumentu): Java API pro čtení a zápis Microsoft Word 97
- HPSF (Horrible Property Set Format): Java API pro čtení sad vlastností pomocí (pouze) Javy
Vytvořte dokument aplikace Excel
Jakarta POI API lze použít k programovému vytvoření dokumentu aplikace Excel. Jedná se o důležité kroky:
- Vytvořit sešit:
Sešit HSSFWorkbook = nový HSSFWorkbook ();
- Vytvořte nový sešit v sešitu a pojmenujte jej "Java Excels":
List HSSFSheet = workbook.createSheet ("Java Excel");
- Vytvořte nový řádek v listu:
HSSFRow řádek = sheet.createRow ((short) 0);
- Vytvořte buňku v řádku:
HSSFCell buňka = row.createCell ((short) 0);
- Vložte nějaký obsah do buňky:
cell.setCellValue ("Have a Cup of XL");
- Napište sešit do souborového systému:
workbook.write (fileOutputStream);
Čtení dat z dokumentu aplikace Excel
V tomto příkladu uvidíte, jak číst hodnoty z dokumentu aplikace Excel.
Předpokládejme, že toto je náš Excel list:
|
Klíčové kroky při čtení listu aplikace Excel jsou následující:
- Vytvořit nový odkaz na dokument Excel:
Sešit HSFWorkbook = nový HSSFWorkbook (nový FileInputStream (fileToBeRead));
. - Viz list: Ve výchozím nastavení je první list v dokumentu Excel odkazem 0:
List HSSFSheet = workbook.getSheetAt (0);
. Na list lze také odkazovat jménem. Předpokládejme, že list aplikace Excel má výchozí název „List1“. Lze jej označit následovně:HSSFSheet sheet = workbook.getSheet ("List1");
. - Odkaz na řádek:
HSSFRow řádek = sheet.getRow (0);
. - Odkaz na buňku v řádku:
HSSFCell buňka = row.getCell ((short) 0);
. - Získejte hodnoty v této buňce:
cell.getStringCellValue ();
.
Praktický příklad
Nyní předpokládejme, že chceme zobrazit seznam všech deklarovaných metod a členských proměnných v souboru jar. Ideální by bylo mít konsolidovaný seznam všech informací v jednom souboru. Chtěli bychom zobrazit informace tak, aby názvy tříd byly v prvním sloupci, deklarovaná pole ve druhém sloupci a deklarované metody ve třetím sloupci, přičemž záhlaví sloupců se zobrazovala červeně.
Program bude muset dokončit následující činnosti:
- Rozbalte soubor jar
- Přečtěte si všechny soubory třídy v souboru jar
- Načtěte třídy do souboru jar
- Pomocí reflexe získáte deklarované metody a pole
- Napište informace o třídě do listu Excel pomocí POI v Jakartě
Soustřeďme se jen na zajímavé kroky využití Jakartských POI:
- Vytvořte nový dokument aplikace Excel:
workbook = new HSSFWorkbook ();
- Vytvořte list v tomto dokumentu a pojmenujte jej:
sheet = workbook.createSheet ("Informace o třídě Java");
- Nastavte šířku prvních tří sloupců:
sheet.setColumnWidth ((krátké) 0, (krátké) 10 000);
- Vytvořte řádek záhlaví:
HSSFRow řádek = sheet.createRow ((short) 0);
- Vytvořte a nastavte styl písma a buňky:
HSSFFont font = workbook.createFont (); font.setColor (HSSFFont.COLOR_RED); font.setBoldweight (HSSFFont.BOLDWEIGHT_BOLD); // Vytvořit styl HSSFCellStyle cellStyle = workbook.createCellStyle (); cellStyle.setFont (písmo);
- Použijte styl buňky:
HSSFCell buňka = row.createCell ((short) 0); cell.setCellStyle (cellStyle); cell.setCellType (HSSFCell.CELL_TYPE_STRING); cell.setCellValue ("Název třídy");
- Napište výstupní soubor:
FileOutputStream fOut = nový FileOutputStream (outputFile); // Napište sešit listu Excel. Psát (fOut); fOut.flush (); // Hotový obchod. Zavři to. fOut.close ();
souhrn
Jak je ukázáno v tomto článku, vývojáři prostředí Java již nemusí táhnout na data v listech aplikace Excel. Můžeme programově přistupovat k dokumentům Excel. Pořiďte si šálek Java a excelujte v Excelu!
Elango Sundaram je zkušený programátor prostředí Java se zájmem o výzkum v oblasti distribuované výpočetní architektury, technologie založené na agentech a objektově orientované metodiky. Vystudoval počítačovou vědu na Virginia Tech University a napsal Distribuované výpočty pomocí Jini a Websphere Studio Application Developer Tail Plug-in (pro WSAD 4.0).Další informace o tomto tématu
- Stáhněte si zdrojový kód, který je přiložen k tomuto článku
//images.techhive.com/downloads/idge/imported/article/jvw/2004/03/jw-0322-poi.zip
- Webové stránky POI v Jakartě
//jakarta.apache.org/poi/
- Další informace o POI si přečtěte „Je to POI-fect“, Tony Sintes (JavaWorld, Květen 2002)
//www.javaworld.com/javaworld/javaqa/2002-05/01-qa-0503-excel3.html
- Další nástroje Java najdete na webu Vývojové nástroje část JavaWorld 's Aktuální rejstřík
//www.javaworld.com/channel_content/jw-tools-index.shtml
- Další články o nástrojích open source najdete v článku Erika Swensona Profil otevřeného zdroje sloupec
//www.javaworld.com/columns/jw-opensource-index.shtml
Tento příběh „Excelující v Excelu s Javou“ původně publikoval JavaWorld.