Apache POI-XSSF
API Java open source per file XLSX di Microsoft® Excel
Crea, modifica e converti fogli di calcolo XLSX di Excel in formati di file CSV e HTML tramite la libreria Java.
Cos'è Apache POI-XSSF?
Apache POI-XSSF è un'implementazione Java pura del formato di file XLSX di Excel 2007. L'API fornisce procedure per la creazione, la lettura, la modifica e la scrittura di file XLSX di Excel. Fornisce strutture di basso livello per chi ha bisogni speciali. Fornisce inoltre un'API del modello di evento per un accesso efficiente in sola lettura, nonché un'API del modello utente completo per la creazione, la lettura e la modifica di file XLSX. Apache POI-XSSF fornisce un ottimo supporto per funzionalità aggiuntive di Excel come lavorare con fogli, formule, creare stili di cella riempiendo colori e bordi, caratteri, intestazioni e piè di pagina, forme, convalide dei dati, immagini, collegamenti ipertestuali e molti altri.
Guida introduttiva ad Apache POI XSSF
Prima di tutto, devi avere il Java Development Kit (JDK) installato sul tuo sistema. Se lo hai già, procedi alla pagina download di Apache POI per ottenere l'ultima versione stabile in un archivio. Estrarre il contenuto del file ZIP in qualsiasi directory da cui è possibile collegare le librerie richieste al proprio programma Java. Questo è tutto!
Fare riferimento a Apache POI nel tuo progetto Java basato su Maven è ancora più semplice. Tutto ciò di cui hai bisogno è aggiungere la seguente dipendenza nel tuo pom.xml e lasciare che il tuo IDE prenda e faccia riferimento ai file Apache POI Jar.
Dipendenza 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 fogli di calcolo Excel di grandi dimensioni utilizzando l'API Java
Apache POI XSSF offre un ingombro di memoria insufficiente tramite l'API SXSSF per la gestione della scrittura di dati di grandi dimensioni su file MS Excel. Ciò consente di scrivere file molto grandi senza esaurire la memoria poiché solo una parte configurabile delle righe viene conservata in memoria in qualsiasi momento. POI-SXSSF ottiene il suo ingombro di memoria ridotto limitando l'accesso alle righe che si trovano all'interno di una finestra scorrevole, mentre XSSF consente l'accesso a tutte le righe del documento. Le righe precedenti che non sono più nella finestra diventano inaccessibili poiché vengono scritte sul disco. È possibile creare un file excel di grandi dimensioni in Java utilizzando i seguenti passaggi
Crea file Excel di grandi dimensioni utilizzando Java
- Crea una nuova cartella di lavoro SXSSF e mantieni 100 righe in memoria, le righe in eccesso verranno scaricate su disco
- Crea un nuovo foglio di lavoro usando il metodo createSheet()
- Inserisci i dati in 2000 righe e 2000 celle utilizzando createRow(), createCell() e setCellValue ("I tuoi dati") all'interno e un ciclo nidificato
- Salva il file utilizzando FileOutputStream() e passa il nome del file di output
- Scrivi su file utilizzando il metodo SXSSFWorkbook.Write() e passa FileOutputStream come parametro
Crea un file Excel di grandi dimensioni
// 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 Java per la creazione di cartelle di lavoro Excel e l'aggiunta di fogli
Apache POI XSSF consente ai programmatori di computer di creare una nuova cartella di lavoro Excel in formato file XLSX. Dopo che gli sviluppatori hanno creato la cartella di lavoro, i fogli di lavoro vengono creati da un'istanza esistente della cartella di lavoro e il foglio appena creato viene aggiunto automaticamente in sequenza alla cartella di lavoro.
Crea cartella di lavoro Excel e aggiungi fogli
// 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 un foglio di calcolo Excel in CSV e altri formati di file
Sviluppatori e programmatori Java possono convertire facilmente un foglio di calcolo Excel in un formato di file CSV utilizzando l'API Apache POI XSSF. CSV sta per Comma-Separated-Values ed è un formato molto comune utilizzato per lo scambio di dati tra molte applicazioni. In primo luogo, gli sviluppatori devono leggere il file XLS di input utilizzando l'API XSSF di Apache POI e quindi scrivere le informazioni estratte nei file CSV.
Converti XLSX in 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();
Miglioramento XSSF per intestazioni e piè di pagina
Apache POI XSSF ha la capacità di gestire intestazioni e piè di pagina della prima pagina, nonché intestazioni e piè di pagina pari/dispari. Le intestazioni e i piè di pagina sono una parte molto importante di un foglio di calcolo di Excel. Di solito contiene informazioni aggiuntive come date, numeri di pagina, nome dell'autore e note a piè di pagina, che aiutano a mantenere i documenti più lunghi organizzati e più facili da leggere. Tutti i flag di proprietà di intestazione/piè di pagina possono essere gestiti in XSSF. L'intestazione e il piè di pagina dispari sono l'intestazione e il piè di pagina predefiniti. Viene visualizzato su tutte le pagine che non visualizzano né un'intestazione di prima pagina né un'intestazione di pagina pari.
Unione di celle ed estrazione di testo all'interno di file XLSX di Excel
Apache POI XSSF offre la funzionalità che consente ai programmatori Java di unire più celle in una singola cella all'interno di un foglio di calcolo Excel. Ha incluso metodi che prendono gli indici di cella come argomento e uniscono le celle in un'unica grande cella. Una delle funzionalità più impegnative è la possibilità di estrarre testo da un file XLSX e utilizzarlo in base alle proprie esigenze. Apache POI ha fornito l'estrazione di testo di base per tutti i formati di file supportati dal progetto. Per esigenze avanzate di estrazione di testo, inclusa l'estrazione di Rich Text (come formattazione e stile), insieme all'output XML e HTML, Apache POI lavora a stretto contatto con Apache Tika per fornire parser Tika basati su POI per tutti i formati di file supportati dal progetto.