1. Produse
  2.   Foaie de calcul
  3.   Java
  4.   Apache POI-XSSF 

Apache POI-XSSF 

 
 

Open Source Java API pentru Microsoft® Excel XLSX Files

Creați, editați și convertiți foi de calcul Excel XLSX în formate de fișiere CSV și HTML prin biblioteca Java.

Ce este Apache POI-XSSF?

Apache POI-XSSF este o implementare Java pură a formatului de fișier Excel 2007 XLSX. API-ul oferă proceduri pentru crearea, citirea, modificarea și scrierea fișierelor Excel XLSX. Oferă structuri de nivel scăzut pentru cei cu nevoi speciale. De asemenea, oferă un model API de eveniment pentru acces eficient numai în citire, precum și un model API complet de utilizator pentru crearea, citirea și modificarea fișierelor XLSX. Apache POI-XSSF oferă un suport excelent pentru funcții Excel suplimentare, cum ar fi lucrul cu foi, formule, crearea de stiluri de celule prin completarea cu culori și chenare, fonturi, anteturi și subsoluri, forme, validări de date, imagini, hyperlinkuri și multe altele.

Previous Next

Noțiuni introductive cu Apache POI XSSF

În primul rând, trebuie să aveți Java Development Kit (JDK) instalat pe sistemul dvs. Dacă îl aveți deja, treceți la pagina de descărcare a Apache POI pentru a obține cea mai recentă versiune stabilă într-o arhivă. Extrageți conținutul fișierului ZIP în orice director de unde bibliotecile necesare pot fi legate la programul dvs. Java. Asta e tot!

Referința la Apache POI în proiectul Java bazat pe Maven este și mai simplă. Tot ce aveți nevoie este să adăugați următoarea dependență în pom.xml și să lăsați IDE-ul să preia și să facă referire la fișierele Apache POI Jar.

Dependența 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>

Creați foi mari de calcul Excel folosind API-ul Java

Apache POI XSSF oferă o amprentă de memorie redusă prin intermediul API-ului SXSSF pentru a gestiona scrierea de date mari în fișiere MS Excel. Acest lucru permite scrierea de fișiere foarte mari fără a rămâne fără memorie, deoarece doar o parte configurabilă a rândurilor este păstrată în memorie la un moment dat. POI-SXSSF își atinge amprenta redusă de memorie prin limitarea accesului la rândurile care se află într-o fereastră glisantă, în timp ce XSSF oferă acces la toate rândurile din document. Rândurile mai vechi care nu mai sunt în fereastră devin inaccesibile, deoarece sunt scrise pe disc. Puteți crea un fișier Excel mare în java utilizând următorii pași

Creați fișier Excel mare folosind Java

  1. Creați un nou SXSSFWorkbook și păstrați 100 de rânduri în memorie, rândurile care depășesc vor fi șters pe disc
  2. Creați o nouă foaie de lucru folosind metoda createSheet().
  3. Inserați date în 2000 de rânduri și 2000 de celule utilizând createRow(), createCell() și setCellValue(„Datele dvs.”) în interior și o buclă imbricată
  4. Salvați fișierul folosind FileOutputStream() și transmiteți numele fișierului de ieșire
  5. Scrieți în fișier folosind metoda SXSSFWorkbook.Write() și treceți FileOutputStream ca parametru

Creați un fișier Excel mare

// 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();

API-uri Java pentru crearea registrului de lucru Excel și adăugarea foilor de calcul

Apache POI XSSF le permite programatorilor să creeze un nou registru de lucru Excel în format de fișier XLSX. Odată ce dezvoltatorii creează registrul de lucru, foile de lucru sunt create dintr-o instanță existentă a registrului de lucru, iar foaia nou creată este adăugată automat în secvență la registrul de lucru.

Creați un registru de lucru Excel și adăugați foi

// 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);

Convertiți o foaie de calcul Excel în CSV și alt format de fișier

Dezvoltatorii și programatorii Java pot converti cu ușurință o foaie de calcul Excel într-un format de fișier CSV folosind API-ul Apache POI XSSF. CSV înseamnă Comma-Separated-Values și este un format foarte comun utilizat pentru schimbul de date între multe aplicații. În primul rând, dezvoltatorii trebuie să citească fișierul XLS de intrare folosind API-ul Apache POI XSSF și apoi să scrie informațiile extrase în fișierele CSV.

Convertiți XLSX în 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();

Îmbunătățirea XSSF pentru anteturi și subsoluri

Apache POI XSSF are capacitatea de a gestiona anteturile și subsolurile de prima pagină, precum și anteturile și subsolurile pare/impar. Anteturile și subsolurile sunt o parte foarte importantă a unei foi de calcul Excel. De obicei, conține informații suplimentare, cum ar fi datele, numerele paginilor, numele autorului și note de subsol, care ajută la păstrarea documentelor mai lungi organizate și mai ușor de citit. Toate steagurile proprietăților antet/subsol pot fi gestionate în XSSF. Antetul și subsolul impar sunt antetul și subsolul implicit. Este afișat pe toate paginile care nu afișează nici un antet de prima pagină, nici un antet de pagină pară.

Îmbinarea celulelor și extragerea textului în fișierele Excel XLSX

Apache POI XSSF oferă capacitatea care permite programatorilor Java să îmbine mai multe celule într-o singură celulă în interiorul unei foi de calcul Excel. Acesta a inclus metode care iau indici de celule ca argument și îmbină celulele într-o singură celulă mare. Una dintre cele mai solicitante caracteristici este capacitatea de a extrage text dintr-un fișier XLSX și de a-l utiliza în funcție de nevoile dvs. Apache POI a oferit extragerea de bază a textului pentru toate formatele de fișiere acceptate de proiect. Pentru nevoile avansate de extragere a textului, inclusiv extragerea textului îmbogățit (cum ar fi formatarea și stilul), împreună cu ieșirea XML și HTML, Apache POI lucrează îndeaproape cu Apache Tika pentru a furniza analizatoare Tika bazate pe POI pentru toate formatele de fișiere acceptate de proiect.

 Română