How To Read / Write Excel Spreadsheet From Java Come leggere / scrivere un foglio di calcolo Excel da Java
Overview Panoramica
There are two good choices for reading & writing Microsoft Excel Spreadsheet files from Java, in a platform independent way, - jexcelapi and Jakarta POI (HSSF) . Ci sono due buone scelte per la lettura e la scrittura Fogli di calcolo Microsoft Excel file da Java, in un modo indipendente dalla piattaforma, - jexcelapi e Jakarta POI (HSSF). Both of them provide nice interface to access Excel data structure and even generate new spreadsheet. Ciascuno di essi forniscono piacevole interfaccia per accedere a dati di Excel struttura e anche generare nuove foglio di calcolo. I have done extensive tests with both of them for a high-profile project for a Fortune 500 company. Ho fatto ampio test con ciascuno di essi per un alto profilo progetto per una società Fortune 500. Previously also I had successfully used HSSF for another high profile client. Anche in precedenza avevo usato con successo HSSF per un altro client di alto profilo. In the paragraphs below I present my conclusions and sample code for reading Excel spreadsheet from Java using both the libraries. Nei punti seguenti presentare conclusioni e il mio codice di esempio per la lettura di un foglio di calcolo Excel da Java utilizzando sia le librerie.
Comparison of JExcelAPI with Jakarta-POI (HSSF) Confronto delle JExcelAPI a Jakarta-POI (HSSF)
1. JExcelAPI is clearly not suitable for important data. evidentemente non è adatto per i dati importanti. It fails to read several files. Essa non riesce a leggere più file. Even when it reads it fails on cells for unknown reasons. Anche quando si legge che non riesce a cellule per motivi sconosciuti. In short JExcelAPI isn’t suitable for enterprise use. In breve JExcelAPI non è adatto per le imprese.
2. HSSF is the POI Project’s pure Java implementation of the Excel ‘97(-2002) file format. è il POI del Progetto pura implementazione Java di Excel'97 (-2002) formato di file. It is a mature product and was able to correctly and effortlessly read excel data generated from various sources, including non-MS Excel products like Open Office, and for various versions of Excel. Si tratta di un prodotto maturo ed è stato in grado di correttamente e senza fatica di leggere dati di Excel generati da varie fonti, compresi i non-MS Excel prodotti come Open Office, e per varie versioni di Excel. It is very robust and well featured. E 'molto robusto e ben caratterizzata. Highly recommended. Altamente consigliato.
3. Performance was never a consideration in our tests because a) data integrity is the single most important factor and b) there didn’t appear to be any significant performance difference while running the tests; both of them were very fast. Prestazioni non è mai stata una considerazione nei nostri test, perché a) l'integrità dei dati è il fattore più importante e b) non sembra essere in modo significativo le prestazioni differenza durante l'esecuzione delle prove; ciascuno di essi sono stati molto veloci. We didn’t bother to time it for the above reasons. Non abbiamo tempo a preoccuparsi per le ragioni di cui sopra.
How to read Excel Excel Spreadsheet from Java using Jakarta POI (HSSF) Come leggere un foglio di calcolo Excel Excel da Java utilizzando Jakarta POI (HSSF)
try { POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream( file )); HSSFWorkbook wb = new HSSFWorkbook(fs); HSSFSheet sheet = wb.getSheetAt(0); HSSFRow row; HSSFCell cell; int rows; // No of rows rows = sheet.getPhysicalNumberOfRows(); int cols = 0; // No of columns int tmp = 0; // This trick ensures that we get the data properly even if it doesn’t start from first few rows for(int i = 0; i < 10 || i < rows; i++) { row = sheet.getRow(i); if(row != null) { tmp = sheet.getRow(i).getPhysicalNumberOfCells(); if(tmp > cols) cols = tmp; } } for(int r = 0; r < rows; r++) { row = sheet.getRow(r); if(row != null) { for(int c = 0; c < cols; c++) { cell = row.getCell((short)c); if(cell != null) { // Your code here } } } } } catch(Exception ioe) { ioe.printStackTrace(); } try (POIFSFileSystem fs = new POIFSFileSystem (nuovo FileInputStream (file)); HSSFWorkbook wb = new HSSFWorkbook (fs); HSSFSheet foglio = wb.getSheetAt (0); HSSFRow fila; HSSFCell cella; int righe; / / n. di righe righe = sheet.getPhysicalNumberOfRows (); int cols = 0; / / n. di colonne int tmp = 0; / / Questo trucco assicura che otteniamo i dati correttamente, anche se non si avvia da prime righe for (int i = 0; i <10 | | i <righe; i + +) (riga = sheet.getRow (i); if (riga! = null) (tmp = sheet.getRow (i). getPhysicalNumberOfCells (); if (tmp> cols) cols = tmp;)) for (int i = 0; r <righe; r + +) (riga = sheet.getRow (r); if (riga! = null) (for (int c = 0; c <cols; c + +) (cella Row.getCell = ((short) c); if (cella! = Null) (/ / Il codice qui))))) catch (Exception UIE) (ioe.printStackTrace ();) This sample should get you started. Questo campione deve iniziare. Don’t forget to import appropriately. Non dimenticare di importazione adeguato.
Gotchas while using Jakarta POI (HSSF) "Trucchi" durante l'utilizzo di Jakarta POI (HSSF)
- getPhysicalNumberOfRows() returns the physical number of rows which may be more than the actual (logical) number of rows. getPhysicalNumberOfRows () restituisce il numero fisico di righe che possono essere superiori a quelli effettivi (logico) il numero di righe. The same goes for getPhysicalNumberOfCells(). Lo stesso vale per getPhysicalNumberOfCells ().
- You should check for nulls when fetching the HSSFRow and HSSFCell objects as shown. Si dovrebbe verificare quando nulls per il recupero e la HSSFRow oggetti HSSFCell come mostrato in figura.
- Remember that Excel tables are often sparsely populated. Ricorda che le tabelle di Excel sono spesso scarsamente popolate. So choose your data structures accordingly. Così scegliere il vostro strutture di dati di conseguenza.
- POI accesses the data by sheet. POI accede al foglio di dati. In JExcelAPI you can directly access the data in any row and column. In JExcelAPI è possibile accedere direttamente i dati in ogni riga e colonna.
How to access Excel Spreadsheet using JExcelAPI Come accedere utilizzando un foglio di calcolo Excel JExcelAPI
File fp = new File(file); try { Workbook wb = Workbook.getWorkbook(fp); Sheet sheet = wb.getSheet(0); int columns = sheet.getColumns(); int rows = sheet.getRows(); String data; for(int col = 0;col < columns;col++) { for(int row = 0;row < rows;row++) { data = sheet.getCell(col, row).getContents(); // Your code here } } } catch(Exception ioe) { System.out.println("Error: " + ioe); } Fp = file nuovo file (file); try (di lavoro wb = Workbook.getWorkbook (fp); Foglio foglio = wb.getSheet (0); int colonne = sheet.getColumns (); int righe = sheet.getRows (); Stringa dati; for (int col = 0; col <colonne; col + +) (for (int riga = 0; riga <righe; riga + +) (dati = sheet.getCell (col, riga). getContents (); / / Il codice qui ))) Catch (Exception UIE) (System.out.println ( "Errore:" + UIE);)
File fp = new File(file); try { Workbook wb = Workbook.getWorkbook(fp); Sheet sheet = wb.getSheet(0); int columns = sheet.getColumns(); int rows = sheet.getRows(); String data; for(int col = 0;col < columns;col++) { for(int row = 0;row < rows;row++) { data = sheet.getCell(col, row).getContents(); // Your code here } } } catch(Exception ioe) { System.out.println("Error: " + ioe); } Fp = file nuovo file (file); try (di lavoro wb = Workbook.getWorkbook (fp); Foglio foglio = wb.getSheet (0); int colonne = sheet.getColumns (); int righe = sheet.getRows (); Stringa dati; for (int col = 0; col <colonne; col + +) (for (int riga = 0; riga <righe; riga + +) (dati = sheet.getCell (col, riga). getContents (); / / Il codice qui ))) Catch (Exception UIE) (System.out.println ( "Errore:" + UIE);) Gotchas while using JExcelAPI Durante l'utilizzo di trucchi JExcelAPI
- JExcelAPI may often fail to fetch the data from certain cells or even the whole sheet. JExcelAPI possono spesso non riescono a recuperare i dati di alcune cellule o anche l'intero foglio. Unfortunately it gives a warning instead of an error to indicate the problem. Purtroppo dà un avvertimento invece di un errore di indicare il problema.
- JExcelAPI doesn’t expose the full meta-data of the spreadsheet like POI does. JExcelAPI non esporre il pieno meta-dati del foglio di lavoro come fa POI.
- JExcelAPI doesn’t properly recognize the data type in cells. JExcelAPI non riconoscere correttamente il tipo di dati nelle celle. In all cases it indicated String data in our tests even when there were numeric or date fields. In tutti i casi in essa indicato Stringa dati in nostro test, anche quando ci sono stati numerici o data campi.
Concluding thoughts on accessing Excel spreadsheets from Java La conclusione di pensieri sulle modalità di accesso al foglio di lavoro Excel da Java
Both JExcelAPI and Jakarta POI (HSSF) are open source software to read & write data from / to Excel spreadsheet even on non-Microsoft platforms. Sia JExcelAPI e Jakarta POI (HSSF) sono software open source per leggere e scrivere dati da / per foglio di calcolo Excel anche a non Microsoft piattaforme. In my tests HSSF came out to be the clear leader and recommended solution because of robustness and features. Nel mio test HSSF è venuto per essere il leader e chiara soluzione consigliata a causa di robustezza e funzionalità.
Filed under Elencato sotto Enterprise Software Enterprise Software , Headline News Headline News , How To Come , J2EE , Java Software Software Java , Open Source Software Software open source , Programming Programmazione | |
| |
RSS 2.0 RSS 2,0 | |
Trackback this Article | questo articolo |
Email this Article Invia questo articolo
You may also like to read Si può anche leggere come |




May 24th, 2007 at 1:32 pm 24 maggio 2007 alle 1:32 pm
Thanks, Grazie,
4 the script. 4 lo script.
Peter
May 25th, 2007 at 2:12 am 25 maggio 2007 alle 2:12 am
What do you think of jxls (http://jxls.sourceforge.net) ? Che cosa ne pensi di jxls (http://jxls.sourceforge.net)?
May 26th, 2007 at 5:41 pm 26 maggio 2007 alle 5:41 pm
jxls is simply a wrapper on top of poi to make it easier to create complex excel reports. jxls è semplicemente un wrapper in cima poi di rendere più agevole la creazione di complessi eccellenti relazioni. It is not a substitute for poi-hssf or jexcelapi. Non è un sostituto per poi-HSSF o jexcelapi.
May 31st, 2007 at 9:50 pm 31 maggio 2007 alle 9:50 pm
please tell me how to create a dropdownlist in excel mi dica come creare una DropDownList in Excel
with POI. con PDI. Thanks alot. Thanks a lot.
June 4th, 2007 at 12:16 pm 4 giugno 2007 a 12:16 pm
Interesting comparison of ExcelAPI with Jakarta-POI. Interessante confronto di ExcelAPI a Jakarta-POI. Very useful, thanks for the article. Molto utile, grazie per l'articolo.
June 20th, 2007 at 7:23 pm 20 giugno 2007 alle 7:23 pm
Sin ningun lugar a dudas poi es un excelente framework para el manejo de hojas de calculo, lo uso desde hace bastante tiempo y nunca tuve mayoer problemas. Peccato ningun luogo uno dudas poi è un quadro excelente para el manejo de hojas de calculo, lo uso desde hace bastante tiempo y nunca tuve mayoer problemi.
July 20th, 2007 at 4:29 am 20 luglio 2007 a 4:29 am
How did you conclude JExcel API is not suitable for Enterprise? Come avete concludere JExcel API non è adatto per le Imprese?
Can you list the problems faced using JExcel API and how did you overcome them in Jakarta POI? Può avere una lista dei problemi affrontati utilizzando JExcel API e come ha fatto a superare in Jakarta POI?
July 26th, 2007 at 1:11 am 26 luglio 2007 a 1:11 am
There is another choice. Vi è un altro scelta.
Jxcell spreadsheet component Jxcell componente foglio di calcolo
August 14th, 2007 at 3:56 pm 14 agosto 2007 alle 3:56 pm
En que idioma esta esto Que en esta lingua esto
August 21st, 2007 at 8:22 am 21 agosto 2007 alle 8:22 am
plz tell me how i can fetch the data from excel sheet in c code::::::plzzzzz………. plz dimmi come posso recuperare i dati dal foglio Excel in codice C :::::: plzzzzz……….
thanks::::: grazie :::::
August 31st, 2007 at 1:42 pm 31 agosto 2007 alle 1:42 pm
Did you test POI for newer versions of Excel than 2002? Ti è prova POI per versioni più recenti di quelli di Excel 2002? Will POI read an Excel 2005 spreadsheet with just basic data? POI sarà leggere un foglio di calcolo Excel 2005 con soli dati di base?
September 1st, 2007 at 6:13 am 1 settembre 2007 a 6:13 am
@Neelam, @ Neelam,
The best I can suggest is look into the Excel dll files for their interface. La migliore che posso suggerire è esaminare il file dll di Excel per la loro interfaccia. I haven’t read Excel speradsheet in C / C++. Non ho letto Excel speradsheet in C / C + +.
@John, @ Giovanni,
I have been using it on client supplied Excel files. Ho utilizzato sul client di file Excel fornito. I don’t know their versions as I use Open Office or Gnumeric to open them on Linux. Non so loro versioni come utilizzare Open Office o Gnumeric aprire su Linux.
October 23rd, 2007 at 7:26 pm 23 ottobre 2007 alle 7:26 pm
very helpful script! molto utile script! i have another question, though. Ho un'altra domanda, però. have you tried reading charts from an excel file? Hai provato a leggere i grafici da un file di Excel? do you have a sample code for that? non si dispone di un codice di esempio per che? thank you in advance! la ringrazio in anticipo!
October 25th, 2007 at 6:23 am 25 ottobre 2007 alle 6:23 am
I want to know how to append the spreadsheet using java .Please let me know soon . Voglio sapere come aggiungere il foglio di lavoro utilizzando la tecnologia Java. La invitiamo a contattarci al più presto. thanks grazie
October 25th, 2007 at 8:31 am 25 ottobre 2007 alle 8:31 am
Senthil,
Use Jakarta-POI (HSSF) for that. Uso Jakarta-POI (HSSF) per questo.
October 31st, 2007 at 1:42 pm 31 ottobre 2007 alle 1:42 pm
You have given example for reading the excel file. Hai dato esempio per la lettura del file excel. Do you have code snippet to write data to excel template with POI? Avete frammento di codice per scrivere dati in Excel modello con POI?
November 3rd, 2007 at 7:32 am 3 novembre 2007 alle 7:32 am
HI.. HI ..
i want to automate the scripting,, so i want the to read the data from excel sheet & with that date it has to write it in to the another text files,, so i can i have source code for this single case.. desidero automatizzare la scripting,, quindi io voglio leggere i dati dal foglio Excel e con tale data deve scrivere in un altro per i file di testo,, così io posso avere il codice sorgente per questo singolo caso ..
November 13th, 2007 at 6:13 am 13 novembre 2007 alle 6:13 am
Hi.. Hi ..
I need to write data from a microsoft access database onto an excel sheet and any changes or updations in the database should also be reflected on the excel sheet.. Ho bisogno di scrivere i dati da un database di Microsoft Access su un foglio Excel e le eventuali modifiche o updations nella banca dati dovrebbe essere anche riflettuto sul foglio Excel .. Can anyone help?? Chiunque può aiutare?
Same with importing data from excel to database! Stesso con l'importazione di dati da Excel al database!
Thanks.. Grazie ..
November 13th, 2007 at 12:41 pm 13 novembre 2007 alle 12:41 pm
You should use Java to transfer data from MS Access to MS Excel. Si consiglia di utilizzare Java per il trasferimento di dati da MS Access a MS Excel.
Use the above tutorial to read / write from MS Excel. Utilizzate il tutorial di lettura / scrittura da MS Excel.
Read the Leggi il tutorial to read / write from Microsoft Access database using Java esercitazione di lettura / scrittura dal database di Microsoft Access utilizzando Java .
November 13th, 2007 at 12:43 pm 13 novembre 2007 alle 12:43 pm
Erwin said> have you tried reading charts from an excel file? Erwin detto> Hai provato a leggere i grafici da un file di Excel?
No. No
November 14th, 2007 at 3:40 am 14 novembre 2007 alle 3:40 am
Thanku angs.. Thanku angs ..
I did use ur code to read an excel file and got too exceptions as ArrayIndexOutOfBound and 2 more.. Ho fatto uso ur codice per leggere un file di Excel ed ha ottenuto anche eccezioni come ArrayIndexOutOfBound e 2 di più ..
If u can jus help me to write whats in my acess database onto an excel file i’ll be thankful.. Se u jus può aiutarmi a scrivere che cosa nel mio database di accesso su un file di Excel sarò grato .. Will be glad if I get some code on it!!! Sarà lieto se mi po 'di codice su di esso!
January 18th, 2008 at 2:45 am 18 gennaio 2008, 2:45 am
thx for the info! THX per le informazioni!
January 24th, 2008 at 3:47 am 24 gennaio 2008, 3:47 am
I want to write the data in Excel File . Voglio scrivere i dati in file Excel. (ie) I want to append the excel file . (IE) Voglio aggiungere il file di Excel. how can i do that? Come posso farlo?
The original file\’s soft copy is in one subfolder of my project. Il file originale \ 's morbido copia è in una sottocartella del mio progetto. I want to overwrite that file . I desidera sovrascrivere il file. Pls help . Pls aiuto. I use jxl jar file in my project . Io uso jxl file jar nel mio progetto.
Thanks in Advance Grazie in anticipo
Ganesh
February 4th, 2008 at 1:17 am 4 febbraio 2008, 1:17 am
I used the same code. Ho usato lo stesso codice. In the biginning i have only Nel biginning ho soltanto
1000 rows, 26 columns then it was working properly. 1000 righe, 26 colonne poi fu funziona correttamente.
Here the proble cames, now i hav 3000 rows, 29 colomns; at first, my program had worked properly but its taken 1.26 minuts to finish up and i cheacked ie. Qui il proble cames, ora i hav 3000 righe, 29 colomns; a prima, il mio programma ha funzionato correttamente ma la sua presa 1,26 minuti per terminare e vale a dire i cheacked.
taking more time in executing this single line “HSSFWorkbook wb = new HSSFWorkbook(fs);”. prendendo più tempo di esecuzione in questa sola riga "HSSFWorkbook wb = new HSSFWorkbook (fs);". and at the next time i got this Exception in thread “main” java.lang.OutOfMemoryError: Java heap space. e durante la prossima volta che ho avuto questa eccezione nel thread "main" java.lang.OutOfMemoryError: Java heap spazio. finally i executed the same code in some other system, again the same problem… Infine ho eseguito lo stesso codice in un altro sistema, ancora una volta lo stesso problema…
plz help me to solve this problem.. plz mi aiuti a risolvere questo problema ..
Thanks in Adwnc Grazie in Adwnc
Nandu.
February 4th, 2008 at 7:04 am 4 febbraio 2008 a 7:04 am
Thanks Angsuman for this introduction which helped me choose POI. Angsuman grazie per questa introduzione che mi ha aiutato scegliere POI.
I had some difficulty understanding the difference between physical and logical rows and cells and I found out that your code is not working when there are empty rows. Ho avuto qualche difficoltà a comprendere la differenza tra fisico e logico righe e cellule e ho scoperto che il codice non funziona quando ci sono le righe vuote.
You mention in already in your “gotcha’s” but it’s actually the other way around Lei parla già nel suo "Gotcha", ma è in realtà il modo per aggirare le altre
getPhysicalNumberOfRows() may be LESS than the actual rows (retrieved by getLastRowNum() ). getPhysicalNumberOfRows () può essere inferiore a quello effettivo righe (recuperato da getLastRowNum ()).
In your example you mix up the getPhysicalNumberOfRows() and the sheet.getRow(int) which returns the logical row in the sheet which might be a different one if you have empty rows. Nel tuo esempio è il mix getPhysicalNumberOfRows () e il sheet.getRow (int) che restituisce la logica riga nella scheda che potrebbe essere uno diverso se si dispone di righe vuote. The same goes for columns. Lo stesso vale per le colonne.
February 6th, 2008 at 5:41 pm 6 febbraio 2008, 5:41 pm
POI HSSF was not usable for me mainly because it didn’t know how to write out number values with the correct format - so things which were percentages in the spreadsheet like “83%” might come out of POI as “0.834444″ which doesn’t work with the rest of the pipeline. POI HSSF non era utilizzabile per me soprattutto perché non sa scrivere il numero di valori con il formato corretto - in modo che le cose sono state percentuali nel foglio di calcolo come "83%" potrebbe uscire di PDI come "0,834444", che non può essere ' t lavoro con il resto del cantiere.
March 6th, 2008 at 6:43 am 6 marzo 2008, 6:43 am
how to read upload Excel sheet in tamil font in java code come leggere caricare foglio Excel in Tamil font nel codice Java
I would like to upload Excel sheet in tamil font using java code Desidero caricare foglio Excel in Tamil font utilizzando codice Java
help me help me
April 6th, 2008 at 7:11 am 6 aprile 2008, 7:11 am
ur’s mail id please, by which i mail u regardings my problems in programing ur's mail per favore, di cui i mail e regardings miei problemi in programmazione
April 15th, 2008 at 8:37 am 15 aprile 2008, 8:37 am
I have one excel file which is 51MB size. Ho un file excel che è 51MB dimensioni. i tried to open using POI but fails. Ho cercato di aprire utilizzando POI, ma non riesce. I saved the file using MS Excel with different file name and opened it with POI, it works. Ho salvato il file con MS Excel con nome file diverso e ha aperto con PDI, funziona.
Is it the file problem or with POI? E 'il problema di file o con POI?
Please suggest. Si prega di suggerire.
April 16th, 2008 at 12:37 pm 16 aprile 2008, 12:37 pm
I would guess that it is the problem of the spreadsheet. Immagino che sia il problema del foglio di lavoro.
April 16th, 2008 at 12:40 pm 16 aprile 2008, 12:40 pm
I have used POI with thousands of complex spreadsheets without any issues at all. Ho utilizzato POI con migliaia di fogli di calcolo complessi senza problemi a tutti.
April 18th, 2008 at 4:18 am 18 aprile 2008, 4:18 am
I tried POI , with Excel 2003, it’s writing fine , but when I’m trying to open it corrupts the whole Excel file. Ho cercato di POI, con Excel 2003, è scritta bene, ma quando sto cercando di aprire corrompe l'intero file di Excel.
So I tried with JXl, here writing & opening is ok, But it’s not appending new sheet’s. Così ho cercato con JXl, qui la scrittura e l'apertura è ok, ma non aggiungendo nuovo foglio. it’s always replaces old sheet with newly created sheet.Please any one can help me. è sempre sostituisce il vecchio foglio con appena creato sheet.Please uno può aiutarmi.
April 26th, 2008 at 2:02 am 26 aprile 2008, 2:02 am
Hi, Salve,
Sorry that I am putting question of Jxl in POI forum. Dispiace che io sia questione di messa in Jxl POI forum.
I am getting error “java.lang.OutOfMemoryError: Java heap space” while reading file with 10000 records and 95 columns. Io sono sempre errore "java.lang.OutOfMemoryError: Java heap spazio" durante la lettura di file con 10000 record e 95 colonne. size of file is 14M. la dimensione del file è 14M.
I am testing my application through JProfiler. Io sono il mio test applicazione attraverso JProfiler.
Is there any restriction of file size or problem while reading throught jxl? Vi è alcuna restrizione delle dimensioni del file o un problema durante la lettura jxl pensiero?
Can anybody help me. Nessuno può aiutarmi.
Thanks Grazie
May 20th, 2008 at 3:07 pm 20 maggio 2008, 3:07 pm
what do i import to use the JExcelAPI? Cosa mi importazione di utilizzare il JExcelAPI?
June 1st, 2008 at 11:24 am 1 ° giugno 2008 a 11:24
but how to read excel sheets carying non english language as arabic ? ma come leggere fogli Excel carying non inglese come lingua araba?
June 2nd, 2008 at 12:34 am 2 giugno 2008, 12:34 am
Mohamed,
I don’t know. Non lo so. I haven’t tried it. Non ho provato.
June 10th, 2008 at 3:32 am 10 giugno 2008, 3:32 am
hello everybody, Ciao a tutti,
i have a small problem and need your help on it Ho un piccolo problema e di bisogno del vostro aiuto su di esso
i need to access my .mpp (Microsoft Project) File ho bisogno di accedere al mio. mpp (Microsoft Project) Fascicolo
From java…..How can i do that? Da java… .. Come posso farlo?
knowing that using ready made components is not allowed. sapendo che l'utilizzo di componenti pronti fatto non è consentito.