Din acest articol puteți afla despre scrierea și citirea datelor din fișiere Excel în Java (vor fi luate în considerare atât XLS, cât și formatul XLSX). Vom folosi biblioteca Apache POI și ne vom concentra pe lucrul cu tipurile String și Date. lucrul cu acesta din urmă este destul de inteligent. Permiteți-mi să vă reamintesc că am considerat deja lucrarea cu numere într-un alt articol.
Puteți utiliza biblioteca poi-XX.jar pentru toate fișierele vechi (xls.doc.ppt) Microsoft Office, pentru noi (xlsx.docx.pptx) veți avea nevoie de poi-ooxml-XX.jar. Este foarte important să înțelegeți ce este relevant, deoarece Clasele folosite sunt, de asemenea, diferite - pentru extensiile mai vechi acest lucru este HSSFWorkbook. și pentru cele noi - XSSFWorkbook.
Pregătire: încărcarea bibliotecilor și a dependențelor
Desigur, există multe biblioteci deschise care vă permit să lucrați cu fișiere Excel în Java, de exemplu, JXL, dar vom folosi API-ul cel mai extins și cel mai popular - Apache POI. Pentru ao folosi, trebuie să descărcați fișierele jar și să le adăugați manual prin Eclipse sau să le oferiți Maven.
În al doilea caz, trebuie doar să adăugați următoarele două dependențe:
Cel mai convenabil lucru în Maven este că va descărca nu numai poi.jar și poi-ooxml.jar specificate. dar toate fișierele de jar care sunt folosite intern, adică xmlbeans-2.6.0.jar. Stax-api-1.0.1.jar. poi-ooxml-schemas-3.12.jar și commons-codec-1.9.jar.
Dacă adăugați biblioteci manual - nu uitați de fișierele de mai sus. Puteți descărca totul de aici. Rețineți - dacă încărcați numai poi-xx.jar. atunci codul dvs. va fi compilat fără erori, dar apoi va cădea cu java.lang.NoClassDefFoundError: org / apache / xmlbeans / XmlObject. deoarece în interior se va numi xmlbeans.jar.
În acest exemplu, vom scrie următoarele date în fișierul xls: prima celulă conține șirul cu numele, iar al doilea - data nașterii. Iată instrucțiunea pas cu pas:
- Creați un obiect HSSFWorkBook;
- Creați o foaie utilizând obiectul creat în pasul anterior, createSheet ();
- Creați o linie pe foaie folosind createRow ();
- Creați o celulă în linie - createCell ();
- Setați valoarea celulei prin setCellValue ();
- Scrieți registrul de lucru la Fișier prin FileOutputStream;
- Închideți registrul de lucru. apelând aproape ().
Pentru a scrie rânduri sau numere este suficient, dar pentru a scrie data, trebuie să facem altceva:
- Creați un DateFormat;
- Creați CellStyle;
- Scrieți dateFormat la CellStyle;
- Scrie CellStyle celulei;
- Acum, în această celulă puteți scrie obiectul Date prin același setCellValue;
- Pentru a potrivi data în celulă, trebuie să adăugăm o proprietate în coloană pentru a redimensiona automat: sheet.autoSizeColumn (1).
Toate împreună vor arăta astfel:
Acum considerăm din dosarul nou creat ceea ce am scris acolo.
- Mai întâi, creați HSSFWorkBook. transmiterea acestuia către constructorul FileInputStream;
- Obținem foaia prin trecerea numărului sau a numelui ei pentru a obține getSheet ();
- Primim șirul folosind getRow ();
- Primim celula folosind getCell ();
- Învață tipul celulei folosind getCellType ();
- În funcție de tipul celulei, citiți valorile sale folosind getStringCellValue (). getNumericCellValue () sau getDateCellValue ();
- Închideți registrul de lucru utilizând funcția de închidere ().
Vă reamintesc că data este stocată de către Excel ca număr, adică tipul de celule va fi în continuare CELL_TYPE_NUMERIC.
În forma unui cod va arăta astfel: