Průvodce knihovnou Apache POI
Co je to Apache POI?
Apache POI (zkratka pro Poor Obfuscation Implementation) je volně dostupná knihovna pro jazyk Java, která umožňuje zpracování dokumentů Microsoft Office. Konkrétně se jedná o:
- Soubory Excelu (.xls, .xlsx)
- Soubory Wordu (.doc, .docx)
- Soubory PowerPointu (.ppt, .pptx)
- Soubory Visia (.vsd, .vsdx)
POI poskytuje programové rozhraní pro práci se strukturou a daty těchto dokumentů. To umožňuje provádět různé operace, jako například:
- Získávání a analýza dat z tabulek a grafů
- Automatické generování dynamických dokumentů a reportů
- Automatizaci procesů zpracování dokumentů
Začínáme s Apache POI
Instalace knihovny
Apache POI lze jednoduše integrovat do vašeho projektu pomocí nástrojů pro správu závislostí, jako je Maven nebo Gradle.
Konfigurace pro Maven:
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>5.2.3</version> </dependency>
Konfigurace pro Gradle:
implementation 'org.apache.poi:poi:5.2.3'
Načítání dat z Excelu
import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.WorkbookFactory; try (Workbook workbook = WorkbookFactory.create(new File("data.xlsx"))) { // Získání prvního listu (index 0) Sheet sheet = workbook.getSheetAt(0); // Procházení všech řádků for (Row row : sheet) { // Procházení všech buněk v řádku for (Cell cell : row) { // Získání hodnoty buňky String value = cell.getStringCellValue(); // Výpis hodnoty System.out.println(value); } } } catch (IOException e) { e.printStackTrace(); }
Zápis dat do Excelu
import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.WorkbookFactory; try (Workbook workbook = WorkbookFactory.create(new File("data.xlsx"))) { // Získání prvního listu (index 0) Sheet sheet = workbook.getSheetAt(0); // Získání prvního řádku (index 0) Row row = sheet.getRow(0); // Získání první buňky (index 0) Cell cell = row.getCell(0); // Nastavení nové hodnoty buňky cell.setCellValue("Nová hodnota"); // Uložení změn workbook.write(new FileOutputStream("data_updated.xlsx")); } catch (IOException e) { e.printStackTrace(); }
Rozšířené možnosti knihovny POI
Tvorba vlastních stylů
POI umožňuje detailní nastavení stylů pro formátování dokumentů. Například:
import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.Font; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.WorkbookFactory; try (Workbook workbook = WorkbookFactory.create(new File("data.xlsx"))) { // Vytvoření nového stylu CellStyle style = workbook.createCellStyle(); // Nastavení písma (tučné, velikost 14) Font font = workbook.createFont(); font.setBold(true); font.setFontSize(14); style.setFont(font); // Nastavení barvy pozadí style.setFillForegroundColor(IndexedColors.LIGHT_BLUE.getIndex()); // Nastavení zarovnání textu (doprava) style.setAlignment(HorizontalAlignment.RIGHT); // Aplikace stylu na buňku Sheet sheet = workbook.getSheetAt(0); Cell cell = sheet.getRow(0).getCell(0); cell.setCellStyle(style); // Uložení změn workbook.write(new FileOutputStream("data_styled.xlsx")); } catch (IOException e) { e.printStackTrace(); }
Práce s grafy
Knihovna POI umožňuje vytvářet a editovat grafy v Excelu:
import org.apache.poi.ss.usermodel.Chart; import org.apache.poi.ss.usermodel.Drawing; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.WorkbookFactory; try (Workbook workbook = WorkbookFactory.create(new File("data.xlsx"))) { // Získání prvního listu (index 0) Sheet sheet = workbook.getSheetAt(0); // Získání výkresu Drawing drawing = sheet.createDrawingPatriarch(); // Vytvoření grafu (např. čárový graf) Chart chart = drawing.createChart(drawing.createAnchor(0, 0, 0, 0, 0, 0, 10, 10)); // Nastavení dat grafu chart.plot(workbook, sheet); // Uložení změn workbook.write(new FileOutputStream("data_chart.xlsx")); } catch (IOException e) { e.printStackTrace(); }
Závěrem
Apache POI je robustní nástroj pro programovou manipulaci s dokumenty Microsoft Office. S širokou škálou funkcí pro čtení, zápis a editaci dokumentů umožňuje automatizaci procesů zpracování dokumentů a integraci s jinými systémy. Vývojáři v Javě tak mají k dispozici efektivní řešení pro práci s daty a formátováním dokumentů Office, což otevírá nové možnosti v oblasti správy informací a analýzy dat.
Často kladené otázky (FAQ)
1. Jak instaluji Apache POI?
– Apache POI nainstalujete pomocí nástrojů pro správu závislostí, jako je Maven nebo Gradle.
2. Jak číst z Excelu pomocí Apache POI?
– Vytvořte instanci Workbook
a pomocí getSheetAt()
získejte list. Procházejte řádky a buňky pomocí Row
a Cell
.
3. Jak zapisovat do Excelu pomocí Apache POI?
– Získejte instanci Workbook
a list. Získejte řádek a buňku a nastavte jejich hodnotu. Uložte změny pomocí write()
.
4. Jak vytvářet styly v Excelu pomocí Apache POI?
– Vytvořte instanci CellStyle
a nastavte písmo, barvu pozadí a zarovnání. Použijte setCellStyle()
na cílovou buňku.
5. Jak pracovat s grafy v Excelu pomocí Apache POI?
– Získejte list a výkres Drawing
. Vytvořte graf pomocí createChart()
. Nastavte data pomocí plot()
a uložte změny.
6. Jak číst dokumenty Wordu pomocí Apache POI?
– Vytvořte instanci HWPFDocument
nebo XWPFDocument
dle verze Wordu. Využijte metody pro přístup k textu, odstavcům a dalším prvkům.
7. Jak zapisovat do dokumentů Wordu pomocí Apache POI?
– Vytvořte instanci HWPFDocument
nebo XWPFDocument
. Použijte metody pro přidávání a úpravy textu, odstavců a dalších prvků. Uložte pomocí write()
.
8. Jak pracovat s dokumenty PowerPoint pomocí Apache POI?
– Vytvořte instanci HSLFSlideShow
nebo XSLFSlideShow
dle verze PowerPointu. Použijte metody třídy SlideShow
pro přístup k snímkům, tvarům a dalším prvkům.
9. Jak pracovat s dokumenty Visio pomocí Apache POI?
– Vytvořte instanci VSDDocument
. Použijte metody třídy Document
pro přístup k shapesheetům, tvarům a dalším prvkům.
10. Kde najdu další informace o Apache POI?
– Oficiální web Apache POI
– API dokumentace Apache POI
– Fórum Apache POI