Apache POI je Knihovna pro práci s formáty souborů Microsoft Office, včetně Excelu. Tato knihovna poskytuje různé třídy a metody, které vám umožňují vytvářet, upravovat a číst Excel soubory v programu v jazyce Java.
XSSFWorkbook - jedna ze tříd v Apache POI, která poskytuje funkce pro práci se soubory ve formátu Excel pomocí formátu .xlsx. Tato třída vám umožňuje vytvářet nové soubory aplikace Excel, otevírat stávající soubory ke čtení nebo zápisu dat a upravovat již existující soubory.
Pomocí Xssfworkbooku můžete vytvářet nové listy, vyplňovat je daty, měnit hodnoty buněk, přidávat formátování, vytvářet grafy a další. Kromě toho tato třída také umožňuje číst data ze stávajících souborů aplikace Excel, analyzovat je a provádět různé operace na základě těchto dat.
Apache POI je velmi výkonný a užitečný nástroj pro práci se soubory Excel v Javě. Umožňuje vám provádět širokou škálu úkolů souvisejících se zpracováním a analýzou dat v excelových tabulkách. Pomocí Xssfworkbooku mohou vývojáři snadno vytvářet a upravovat soubory Excel, dávat jim správné formátování a přidávat různé funkce.
Apache POI: základní funkce knihovny
Apache POI vám umožňuje vytvářet, upravovat a číst Excel soubory pomocí jednoduchého a pohodlného API. Mezi hlavní funkce poskytované knihovnou patří:
- Vytváření nových souborů Excel. Pomocí Apache POI můžete vytvářet nové prázdné soubory, přidávat různé položky, jako jsou buňky, řádky a vzorce.
- Úpravy stávajících souborů. Knihovna umožňuje měnit obsah již existujících Excel souborů. Můžete například změnit hodnoty buněk, formátování a styly.
- Čtení dat ze souborů. Apache POI poskytuje možnost čtení dat z excelových souborů. Můžete číst hodnoty buněk, přijímat formátování a styly.
- Zpracování vzorců. Knihovna poskytuje funkce pro práci se vzorci v souboru Excel. Můžete vypočítat vzorce, přidat nové vzorce a získat výsledky výpočtů.
- Práce s grafy a grafy. Apache POI podporuje vytváření a úpravy grafů a grafů v souborech Excel. Můžete přidávat data, konfigurovat styly a typy grafů.
Apache POI poskytuje různé třídy a metody pro práci se soubory Excel, což umožňuje snadnou a flexibilní správu dokumentů. Knihovna také podporuje zpracování různých verzí souborů Excel, počínaje formátem .XLS (Excel 97-2003) a končí formátem .XLSX (Excel 2007 a novější verze).
V dalších částech článku se podíváme blíže na každou z těchto možností Apache POI a uvedeme příklady kódu pro jejich použití.
Práce se soubory Excel: vstup a výstup dat
Chcete-li začít s Excel souborem, musíte vytvořit objekt třídy xssfworkbook, který představuje samotný soubor. K tomu můžete použít výchozí konstruktor, který vytvoří nový prázdný soubor, nebo návrhář, který přijímá InputStream, k otevření stávajícího souboru:
XSSFWorkbook workbook = new XSSFWorkbook(); // создание нового файлаXSSFWorkbook workbook = new XSSFWorkbook(inputStream); // открытие существующего файла
Po vytvoření nebo otevření souboru je možné přistupovat k jednotlivým listům (stránkám) pomocí metody getSheet () a určit název listu nebo jeho index:
XSSFSheet sheet = workbook.getSheet("Лист1"); // получение листа по имениXSSFSheet sheet = workbook.getSheetAt(0); // получение первого листа
Pro čtení dat z Excel souboru můžete použít objekty třídy xssfrow a XSSFCell. Nejprve musíte získat přístup k požadovanému řádku pomocí metody getRow () a zadat jeho číslo:
XSSFRow row = sheet.getRow(0); // получение первой строки
Poté je možné přistupovat k buňkám v tomto řádku pomocí metody getCell () a indikace indexu buňky:
XSSFCell cell = row.getCell(0); // получение первой ячейки
Chcete-li zapisovat data do aplikace Excel, musíte vytvořit objekt třídy xssfrow a zadat jeho číslo a poté vytvořit buňku pomocí metody createCell() a indikace indexu buňky:
XSSFRow row = sheet.createRow(0); // создание первой строкиXSSFCell cell = row.createCell(0); // создание первой ячейки
Po vytvoření buňky lze nastavit její hodnotu pomocí metody setValue () a přenosu požadované hodnoty:
cell.setValue("Значение ячейки"); // установка значения ячейки
Jakmile je soubor Excel dokončen, musíte jej zavřít a uložit změny pomocí metody close ():
workbook.close(); // закрытие файла и сохранение изменений
S Apache POI a třídou xssfworkbook je tedy možné pohodlně a jednoduše pracovat se soubory Excel, vytvářet zadávání a výstup dat a provádět další operace související s Excelem.
Použití xssfworkbook k vytváření a úpravě dokumentů aplikace Excel
XSSFWorkbook je třída, která představuje Excel dokument ve formátu OOXML (Open Office XML). Umožňuje vytvářet nové dokumenty, otevírat stávající a upravovat jejich obsah.
Chcete-li začít s Xssfworkbookem, musíte vytvořit nový objekt této třídy:
XSSFWorkbook workbook = new XSSFWorkbook();
Po vytvoření objektu xssfworkbook můžete vytvářet listy, přidávat data, instalovat styly a další formátování:
XSSFSheet sheet = workbook.createSheet("Новый лист");XSSFRow row = sheet.createRow(0);XSSFCell cell = row.createCell(0);cell.setCellValue("Пример данных");
Ve výše uvedeném příkladu je vytvořen nový list s názvem "Nový list", na kterém je umístěn jeden řádek s hodnotou" datový příklad " v první buňce.
Po úpravě dokumentu jej lze uložit do souborového systému:
FileOutputStream fileOut = new FileOutputStream("Путь/к/файлу.xlsx");workbook.write(fileOut);fileOut.close();
Uvedený kód ukládá dokument do souboru s příponou .xlsx na uvedené cestě.
Použití xssfworkbooku k vytváření a úpravě dokumentů aplikace Excel je pohodlný a efektivní způsob, jak pracovat s daty ve formátu Excel pomocí Javy.
Manipulace s různými typy dat v souboru Excel
Při práci se soubory aplikace Excel pomocí Apache POI můžete manipulovat s různými typy dat, jako jsou čísla, text, data a vzorce.
Chcete-li vložit číselná data do buňky souboru Excel, můžete použít metodu setCellValue() třídy xssfcell. Například:
XSSFCell cell = row.createCell(0);cell.setCellValue(10);
Pro vkládání textových dat můžete použít metodu setCellValue () a předat řetězec. Například:
XSSFCell cell = row.createCell(1);cell.setCellValue("Привет, мир!");
Pro vložení data můžete použít třídu java.util.Date a metoda setCellValue () s přenosem objektu data. Například:
DateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy");Date date = new Date();XSSFCell cell = row.createCell(2);cell.setCellValue(dateFormat.format(date));
Pro vložení vzorce můžete použít metodu setCellFormula () a přenést řetězec se vzorcem. Například:
XSSFCell cell = row.createCell(3);cell.setCellFormula("SUM(A1:A3)");
Tímto způsobem můžete manipulovat s různými typy dat v souboru Excel, když používáte Apache POI. To vám dává větší flexibilitu při vytváření a úpravě souborů Excel.
Formátování buněk, sloupců a řádků v excelovém dokumentu
Apache POI poskytuje možnost Formátovat buňky, sloupce a řádky v dokumentu aplikace Excel. To umožňuje nastavit styl, zarovnání, písmo, barvu a další vlastnosti pro zobrazení dat.
Pro formátování buněk existuje třída xssfcellstyle . Pomocí něj můžete změnit písmo, barvu pozadí, zarovnání textu a další vlastnosti buňky. Příklad použití:
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet (nový list);
// Vytvoření stylu pro buňku
XSSFCellStyle style = workbook.createCellStyle();
XSSFRow row = sheet.createRow(0);
XSSFCell cell = row.createCell(0);
cell.setCellValue ("text v buňce");
FileOutputStream fileOut = new FileOutputStream("workbook.xlsx");
K formátování sloupců lze použít metodu autoSizeColumn u objektu xssfsheet . Tato metoda automaticky nastaví šířku sloupce na základě šířky obsahu. Příklad použití:
XSSFSheet sheet = workbook.createSheet (nový list);
XSSFRow row = sheet.createRow(i);
XSSFCell cell = row.createCell(i);
cell.setCellValue ("text v buňce");
FileOutputStream fileOut = new FileOutputStream("workbook.xlsx");
Formátování řádků lze nastavit pomocí metody setRowStyle u objektu xssfsheet . Příklad použití:
XSSFSheet sheet = workbook.createSheet (nový list);
XSSFRow row = sheet.createRow(i);
row.createCell(0).setCellValue ("text v buňce");
XSSFCellStyle style = workbook.createCellStyle();
FileOutputStream fileOut = new FileOutputStream("workbook.xlsx");
V důsledku provádění příkladů kódu buňky budou sloupce a řádky v Excelu dokumentu naformátovány podle daných stylů.
Práce se vzorci a automatickým výpočtem hodnot
Apache POI vám umožňuje pracovat se vzorci v souboru Excel a automaticky vypočítat jejich hodnoty. K tomu je třeba použít třídy xssfworkbook a xssfsheet z knihovny.
Chcete-li vytvořit vzorec v souboru Excel, musíte použít třídu XSSFCell a metodu setCellFormula(). Chcete-li například vypočítat součet dvou buněk, můžete použít následující kód:
XSSFWorkbook workbook = new XSSFWorkbook();XSSFSheet sheet = workbook.createSheet("Sheet1");XSSFCell cell1 = sheet.createRow(0).createCell(0);XSSFCell cell2 = sheet.createRow(1).createCell(0);XSSFCell cell3 = sheet.createRow(2).createCell(0);cell1.setCellValue(10);cell2.setCellValue(20);cell3.setCellFormula("A1 + A2");
V tomto příkladu se vytvoří nový Excel soubor, na prvním listu se vytvoří dvě buňky a jedna buňka pro vzorec. Hodnoty prvních dvou buněk jsou nastaveny pomocí metody setCellValue (). Hodnota vzorce je nastavena pomocí metody setCellFormula (). Poté se automaticky vypočítá hodnota vzorce při ukládání souboru Excel.
Chcete-li automaticky vypočítat hodnoty vzorců při otevírání souboru Excel, musíte nastavit vlastnost "forceFormulaRecalculation" na true. To lze provést pomocí metody setForceFormulaRecalculation () u objektu xssfworkbook:
workbook.setForceFormulaRecalculation(true);
Nyní, když otevřete soubor Excel, hodnoty vzorců se automaticky vypočítají a zobrazí se správně.
Pomocí Apache POI je tedy možné pracovat se vzorci v souboru Excel a automaticky vypočítat jejich hodnoty. To vám umožní vytvořit složitější výpočty a usnadnit zpracování dat v souboru Excel.
Zpracování a správa chyb v souboru Excel pomocí XSSFWorkbook
Při práci se soubory Excel pomocí Xssfworkbooku je důležité předvídat možné chyby a umět je zpracovat. Program musí být flexibilní a odolný vůči různým situacím, aby mohl úspěšně plnit své funkce.
Zvažte několik scénářů výskytu chyb a způsobů jejich zpracování:
- Chyba při čtení souboru: Pokud soubor, se kterým se snažíme pracovat, neexistuje nebo nelze přečíst, je nutné vygenerovat příslušnou chybu a zpracovat ji. Pomocí návrhu try-catch můžeme zachytit výjimku a provést potřebné kroky, jako je zobrazení chybové zprávy nebo navrhnout uživateli, aby vybral jiný soubor.
- Nesprávný formát dat: Při práci se souborem Excel se můžeme setkat s nesprávnými daty v buňkách. Například pokud očekáváme číslo a buňka obsahuje text. V tomto případě můžeme použít metody třídy DataFormatter ke kontrole formátu dat v buňce a adekvátnímu zpracování chyby.
- Chyba při nahrávání souboru: Při pokusu o zápis změn v souboru Excel se můžeme setkat s chybou zápisu, například pokud je soubor uzamčen k zápisu nebo nemá dostatečná přístupová práva. V takovém případě můžeme vygenerovat příslušnou chybu a navrhnout uživateli, aby si vybral jiný soubor nebo změnil přístupová práva.
To vše lze implementovat pomocí bloku try-catch, který bude zpracovávat výjimky a provádět potřebné kroky v závislosti na chybovém scénáři. Důležité je při zpracování chyb být informativní a poskytnout uživateli srozumitelnou zpětnou vazbu o vzniklých problémech.