Apache POI-XSSF
Open Source Java API pro soubory Microsoft® Excel XLSX
Vytvářejte, upravujte a převádějte tabulky Excel XLSX do formátů souborů CSV a HTML prostřednictvím knihovny Java.
Co je Apache POI-XSSF?
Apache POI-XSSF je čistě Java implementace formátu souboru Excel 2007 XLSX. Rozhraní API poskytuje postupy pro vytváření, čtení, úpravy a zápis souborů Excel XLSX. Poskytuje nízkoúrovňové struktury pro osoby se speciálními potřebami. Poskytuje také rozhraní API modelu událostí pro efektivní přístup pouze pro čtení a také úplné rozhraní API pro uživatelský model pro vytváření, čtení a úpravy souborů XLSX. Apache POI-XSSF poskytuje skvělou podporu pro další funkce aplikace Excel, jako je práce s listy, vzorce, vytváření stylů buněk vyplněním barev a okrajů, písma, záhlaví a zápatí, tvary, ověřování dat, obrázky, hypertextové odkazy a mnoho dalších.
Začínáme s Apache POI XSSF
Nejprve musíte mít na svém systému nainstalovanou sadu Java Development Kit (JDK). Pokud jej již máte, přejděte na stránku stažení místa zájmu Apache, kde získáte nejnovější stabilní verzi v archivu. Extrahujte obsah souboru ZIP do libovolného adresáře, odkud lze požadované knihovny propojit s vaším programem Java. To je vše!
Odkazování na Apache POI ve vašem projektu Java založeném na Maven je ještě jednodušší. Vše, co potřebujete, je přidat následující závislost do vašeho pom.xml a nechat vaše IDE načíst a odkazovat na soubory Apache POI Jar.
Závislost na Apache POI Maven
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.0</version>
</dependency>
Vytvářejte velké tabulky Excel pomocí Java API
Apache POI XSSF nabízí prostor s nízkou pamětí prostřednictvím rozhraní SXSSF API pro práci se zápisem velkých dat do souborů MS Excel. To umožňuje zápis velmi velkých souborů, aniž by došlo k nedostatku paměti, protože v paměti je v jeden okamžik uchovávána pouze konfigurovatelná část řádků. POI-SXSSF dosahuje své nízké kapacity paměti omezením přístupu k řádkům, které jsou v posuvném okně, zatímco XSSF umožňuje přístup ke všem řádkům v dokumentu. Starší řádky, které již nejsou v okně, se stanou nepřístupnými, protože se zapisují na disk. Pomocí následujících kroků můžete vytvořit velký soubor aplikace Excel v jazyce Java
Vytvořte velký soubor Excel pomocí Java
- Vytvořte nový sešit SXSSF a ponechte si 100 řádků v paměti, překračující řádky budou vyprázdněny na disk
- Vytvořte nový list pomocí metody createSheet().
- Vložte data do 2000 řádků a 2000 buněk pomocí createRow(), createCell() a setCellValue("Vaše data") uvnitř a vnořené smyčky
- Uložte soubor pomocí FileOutputStream() a předejte název výstupního souboru
- Zapište do souboru pomocí metody SXSSFWorkbook.Write() a předejte FileOutputStream jako parametr
Vytvořte velký soubor aplikace Excel
// create a new SXSSFWorkbook
SXSSFWorkbook wb = new SXSSFWorkbook(100);
Sheet sh = wb.createSheet();
// insert 2000 rows
for(int rownum = 0; rownum < 2000; rownum++){
Row row = sh.createRow(rownum);
// insert data in 20000 cells
for(int cellnum = 0; cellnum < 10; cellnum++){
Cell cell = row.createCell(cellnum);
cell.setCellValue("Row Number: "+ rownum + " Cell Number: "+ cellnum);
}
}
// save file
FileOutputStream out = new FileOutputStream("LargeDcument.xlsx");
wb.write(out);
out.close();
Java API pro vytváření sešitů aplikace Excel a přidávání tabulek
Apache POI XSSF umožňuje počítačovým programátorům vytvořit nový excelový sešit ve formátu XLSX. Jakmile vývojáři vytvoří sešit, vytvoří se listy z existující instance sešitu a nově vytvořený list se automaticky postupně přidá do sešitu.
Vytvořte sešit aplikace Excel a přidejte listy
// create a new XLSX file
Workbook workbook = new XSSFWorkbook();
OutputStream outputStream = new FileOutputStream("CreateXlsx.xlsx");
// create a new sheet
Sheet sheet = workbook.createSheet("Apache POI XSSF");
// create a new sheet
Row row = sheet.createRow(1);
// create a new cell
Cell cell = row.createCell(1);
// set cell value
cell.setCellValue("File Format Developer Guide");
// save file
workbook.write(outputStream);
Převeďte tabulku aplikace Excel do formátu CSV a jiného formátu
Vývojáři a programátoři Java mohou snadno převést excelovou tabulku do formátu CSV pomocí Apache POI XSSF API. CSV je zkratka pro Comma-Separated-Values a je to velmi běžný formát používaný pro výměnu dat mezi mnoha aplikacemi. Za prvé, vývojáři potřebují přečíst vstupní soubor XLS pomocí Apache POI XSSF API a poté zapsat extrahované informace do souborů CSV.
Převést XLSX na CSV
// Open and existing XLSX file
FileInputStream fileInStream = new FileInputStream("LargeDocument.xlsx");
XSSFWorkbook workBook = new XSSFWorkbook(fileInStream);
XSSFSheet selSheet = workBook.getSheetAt(0);
// Loop through all the rows
Iterator rowIterator = selSheet.iterator();
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
// Loop through all rows and add ","
Iterator cellIterator = row.cellIterator();
StringBuffer stringBuffer = new StringBuffer();
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
if (stringBuffer.length() != 0) {
stringBuffer.append(",");
}
stringBuffer.append(cell.getStringCellValue());
}
System.out.println(stringBuffer.toString());
}
workBook.close();
Vylepšení XSSF pro záhlaví a zápatí
Apache POI XSSF má schopnost zpracovat záhlaví a zápatí první stránky, stejně jako záhlaví a zápatí sudé/liché. Záhlaví a zápatí jsou velmi důležitou součástí tabulky Excel. Obvykle obsahuje další informace, jako jsou data, čísla stránek, jméno autora a poznámky pod čarou, které pomáhají udržovat delší dokumenty uspořádané a snáze čitelné. Všechny příznaky vlastností záhlaví/zápatí lze zpracovat v XSSF. Liché záhlaví a zápatí jsou výchozí záhlaví a zápatí. Zobrazuje se na všech stránkách, které nezobrazují záhlaví první stránky ani záhlaví sudé stránky.
Sloučení buněk a extrakce textu uvnitř souborů Excel XLSX
Apache POI XSSF poskytuje schopnost, která umožňuje programátorům Java sloučit více buněk do jediné buňky v excelové tabulce. Zahrnuje metody, které berou jako argument indexy buněk a slučují buňky do jedné velké buňky. Jednou z nejnáročnějších funkcí je možnost extrahovat text ze souboru XLSX a používat jej podle svých potřeb. Apache POI poskytl základní extrakci textu pro všechny formáty souborů podporované projektem. Pro potřeby pokročilé extrakce textu, včetně extrakce formátovaného textu (jako je formátování a styling), spolu s výstupem XML a HTML, Apache POI úzce spolupracuje s Apache Tika na poskytování analyzátorů Tika založených na POI pro všechny formáty souborů podporované projektem.