Apache POI-XSSF
Open Source Java API för Microsoft® Excel XLSX-filer
Skapa, redigera och konvertera Excel XLSX-kalkylblad till CSV- och HTML-filformat via Java Library.
Vad är Apache POI-XSSF?
Apache POI-XSSF är en ren Java-implementering av filformatet Excel 2007 XLSX. API:et tillhandahåller procedurer för att skapa, läsa, ändra och skriva Excel XLSX-filer. Det ger strukturer på låg nivå för dem med särskilda behov. Den tillhandahåller också en händelsemodell API för effektiv skrivskyddad åtkomst samt en fullständig användarmodell API för att skapa, läsa och ändra XLSX-filer. Apache POI-XSSF ger bra stöd för ytterligare Excel-funktioner som att arbeta med ark, formler, skapa cellstilar genom att fylla i färger och ramar, typsnitt, sidhuvuden och sidfötter, former, datavalideringar, bilder, hyperlänkar och många fler.
Komma igång med Apache POI XSSF
Först och främst måste du ha Java Development Kit (JDK) installerat på ditt system. Om du redan har det, fortsätt till Apache POI:s nedladdningssida för att få den senaste stabila utgåvan i ett arkiv. Extrahera innehållet i ZIP-filen i valfri katalog där de nödvändiga biblioteken kan länkas till ditt Java-program. Det är allt!
Att referera till Apache POI i ditt Maven-baserade Java-projekt är ännu enklare. Allt du behöver är att lägga till följande beroende i din pom.xml och låta din IDE hämta och referera till Apache POI Jar-filer.
Apache POI Maven beroende
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.0</version>
</dependency>
Skapa stora Excel-kalkylblad med Java API
Apache POI XSSF erbjuder footprint med lågt minne via SXSSF API för att hantera stora dataskrivningar till MS Excel-filer. Detta gör det möjligt att skriva mycket stora filer utan att ta slut på minne eftersom endast en konfigurerbar del av raderna hålls i minnet åt gången. POI-SXSSF uppnår sitt låga minnesutrymme genom att begränsa åtkomsten till raderna som finns inom ett glidande fönster, medan XSSF ger åtkomst till alla rader i dokumentet. Äldre rader som inte längre finns i fönstret blir oåtkomliga, eftersom de skrivs till disken. Du kan skapa en stor excel-fil i java genom att använda följande steg
Skapa stor Excel-fil med Java
- Skapa en ny SXSSFWorkbook och behåll 100 rader i minnet, fler rader kommer att spolas till disken
- Skapa ett nytt kalkylblad med metoden createSheet().
- Infoga data i 2000 rader och 2000 celler genom att använda createRow(), createCell() och setCellValue("Dina data") inuti och en kapslad loop
- Spara filen med FileOutputStream() och skicka ut filnamnet
- Skriv till fil med metoden SXSSFWorkbook.Write() och skicka FileOutputStream som en parameter
Skapa en stor Excel-fil
// 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:er för Excel-arbetsbokskapande och tillägg av ark
Apache POI XSSF gör det möjligt för datorprogrammerare att skapa en ny Excel-arbetsbok i XLSX-filformat. När utvecklare har skapat arbetsboken skapas kalkylblad från en befintlig instans av arbetsboken, och det nyskapade bladet läggs automatiskt till i sekvens till arbetsboken.
Skapa Excel-arbetsbok och lägg till ark
// 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);
Konvertera ett Excel-kalkylblad till CSV och annat filformat
Java-utvecklare och programmerare kan enkelt konvertera ett Excel-kalkylblad till ett CSV-filformat med hjälp av Apache POI XSSF API. CSV står för Comma-Separated-Values och är ett mycket vanligt format som används för att utbyta data mellan många applikationer. För det första måste utvecklare läsa den ingående XLS-filen med Apache POI XSSF API och sedan skriva extraherad information till CSV-filer.
Konvertera XLSX till 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();
XSSF-förbättring för sidhuvuden och sidfötter
Apache POI XSSF har förmågan att hantera sidhuvuden och sidfötter på första sidan, såväl som jämna/udda sidhuvuden och sidfötter. Sidhuvuden och sidfötter är en mycket viktig del av ett Excel-kalkylblad. Den innehåller vanligtvis extra information som datum, sidnummer, författarens namn och fotnoter, vilket hjälper till att hålla längre dokument organiserade och lättare att läsa. Alla flaggor för sidhuvud/sidfotsegenskaper kan hanteras i XSSF. Den udda sidhuvudet och sidfoten är standardhuvudet och sidfoten. Den visas på alla sidor som inte visar varken ett förstasideshuvud eller ett jämnt sidhuvud.
Sammanfoga celler och textextraktion i Excel XLSX-filer
Apache POI XSSF ger möjligheten att Java-programmerare kan slå samman flera celler till en enda cell i ett Excel-kalkylblad. Den har inkluderat metoder som tar cellindex som ett argument och slår samman cellerna till en enda stor cell. En av de mest krävande funktionerna är möjligheten att extrahera text från en XLSX-fil och använda den efter dina behov. Apache POI har tillhandahållit grundläggande textextraktion för alla filformat som stöds av projektet. För avancerade textextraheringsbehov, inklusive Rich Text-extraktion (som formatering och stil), tillsammans med XML- och HTML-utdata, arbetar Apache POI nära med Apache Tika för att leverera POI-drivna Tika Parsers för alla projektstödda filformat.