logo

Kā lasīt Excel failu Java

Šajā sadaļā mēs uzzināsim, kā mēs varam nolasīt datus no Excel faila.

Programmā Java Excel faila lasīšana nav līdzīga Word faila lasīšanai, jo Excel failā ir šūnas. JDK nenodrošina tiešu API Microsoft Excel vai Word dokumentu lasīšanai vai rakstīšanai. Mums ir jāpaļaujas uz trešās puses bibliotēku, kas ir Apache POI.

Kas ir Apache POI?

Apache POI (Slikta obfusācijas ieviešana) ir Java API, kas paredzēta Microsoft dokumentu lasīšanai un rakstīšanai abos formātos .xls un .xlsx . Tas satur klases un saskarnes. Apache POI bibliotēka nodrošina divus Excel failu lasīšanas variantus:

    HSSF (Horrible Spreadsheet Format) ieviešana:Tas apzīmē API, kas darbojas ar Excel 2003 vai vecākām versijām.XSSF (XML izklājlapas formāts) ieviešana:Tas apzīmē API, kas darbojas ar Excel 2007 vai jaunākām versijām.

Apache POI saskarnes un klases

Saskarnes

    Darba burtnīca:Tas apzīmē an Excel darbgrāmata . Tas ir interfeisa ieviešana, ko piedāvā HSSFWorkbook un XSSFWorkbook .Lapa:Tā ir saskarne, kas apzīmē an Excel darblapa . Lapa ir darbgrāmatas centrālā struktūra, kas attēlo šūnu režģi. Lapas saskarne tiek paplašināta java.lang.Iterable .Rinda:Tā ir arī saskarne, kas attēlo rinda no izklājlapas. Rindas saskarne tiek paplašināta java.lang.Iterable . Ir divas konkrētas klases: HSSFRrow un XSSFRrow .Šūna:Tā ir saskarne. Tas ir augsta līmeņa attēlojums a šūna izklājlapas rindā. HSSFCell un XSSFCell ieviest šūnu saskarni.

Klases

XLS klases

    HSSFWorkbook:Tā ir klase, kas pārstāv XLS failu.HSSFS lapa:Tā ir klase, kas attēlo lapu XLS failā.HSSFRrow:Tā ir klase, kas apzīmē rindu XLS faila lapā.HSSFCell:Tā ir klase, kas attēlo šūnu XLS faila rindā.

XLSX klases

iphone emocijzīmes Android tālrunī
    XSSFdarbgrāmata:Tā ir klase, kas pārstāv XLSX failu.XSSFS lapa:Tā ir klase, kas attēlo lapu XLSX failā.XSSFRrow:Tā ir klase, kas apzīmē rindu XLSX faila lapā.XSSFCell:Tā ir klase, kas attēlo šūnu XLSX faila rindā.

Darbības, lai nolasītu datus no XLS faila

1. darbība: Izveidojiet vienkāršu Java projektu aptumsumā.

2. darbība: Tagad projektā izveidojiet lib mapi.

3. darbība: Lejupielādējiet un mapē lib pievienojiet šādus jar failus:

4. darbība: Iestatiet klases ceļu:

Ar peles labo pogu noklikšķiniet uz projekta -> Build Path -> Add External JAR -> atlasiet visus iepriekš minētos jar failus -> Lietot un aizvērt.

5. darbība: Tagad izveidojiet klases failu ar nosaukumu Lasīt ExcelFileDemo un ierakstiet failā šādu kodu.

linux komanda zip

6. darbība: Izveidojiet Excel failu ar nosaukumu 'students.xls' un ierakstiet tajā dažus datus.


Kā lasīt Excel failu Java

7. darbība: Saglabājiet un palaidiet programmu.

Excel faila (.xls) faila lasīšanas piemērs

 import java.io.File; import java.io.FileInputStream; import java.io.IOException; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.FormulaEvaluator; import org.apache.poi.ss.usermodel.Row; public class ReadExcelFileDemo { public static void main(String args[]) throws IOException { //obtaining input bytes from a file FileInputStream fis=new FileInputStream(new File('C:\demo\student.xls')); //creating workbook instance that refers to .xls file HSSFWorkbook wb=new HSSFWorkbook(fis); //creating a Sheet object to retrieve the object HSSFSheet sheet=wb.getSheetAt(0); //evaluating cell type FormulaEvaluator formulaEvaluator=wb.getCreationHelper().createFormulaEvaluator(); for(Row row: sheet) //iteration over row using for each loop { for(Cell cell: row) //iteration over cell using for each loop { switch(formulaEvaluator.evaluateInCell(cell).getCellType()) { case Cell.CELL_TYPE_NUMERIC: //field that represents numeric cell type //getting the value of the cell as a number System.out.print(cell.getNumericCellValue()+ '		'); break; case Cell.CELL_TYPE_STRING: //field that represents string cell type //getting the value of the cell as a string System.out.print(cell.getStringCellValue()+ '		'); break; } } System.out.println(); } } } 

Izvade:

 Name Age Height Swarit 23.0 5' Puneet 25.0 6'1' Swastik 22.0 5'5' Tejas 12.0 4'9' 

XLSX faila lasīšana

Visas darbības paliks nemainīgas, izņemot faila formātu.

Tabula: darbinieks.xslx

pyspark apmācība

Kā lasīt Excel failu Java

Excel faila lasīšanas piemērs (.xlsx)

Šajā piemērā mēs izmantojam XSSFWorkbook klasi.

vesels skaitlis līdz virknei Java
 import java.io.File; import java.io.FileInputStream; import java.util.Iterator; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class XLSXReaderExample { public static void main(String[] args) { try { File file = new File('C:\demo\employee.xlsx'); //creating a new file instance FileInputStream fis = new FileInputStream(file); //obtaining bytes from the file //creating Workbook instance that refers to .xlsx file XSSFWorkbook wb = new XSSFWorkbook(fis); XSSFSheet sheet = wb.getSheetAt(0); //creating a Sheet object to retrieve object Iterator itr = sheet.iterator(); //iterating over excel file while (itr.hasNext()) { Row row = itr.next(); Iterator cellIterator = row.cellIterator(); //iterating over each column while (cellIterator.hasNext()) { Cell cell = cellIterator.next(); switch (cell.getCellType()) { case Cell.CELL_TYPE_STRING: //field that represents string cell type System.out.print(cell.getStringCellValue() + '			'); break; case Cell.CELL_TYPE_NUMERIC: //field that represents number cell type System.out.print(cell.getNumericCellValue() + '			'); break; default: } } System.out.println(''); } } catch(Exception e) { e.printStackTrace(); } } } 

Izvade:

 Employee ID Employee Name Salary Designation Department 1223.0 Harsh 20000.0 Marketing Manager Marketing 3213.0 Vivek 15000.0 Financial Advisor Finance 6542.0 Krishna 21000.0 HR Manager HR 9213.0 Sarika 34000.0 Sales Manager Sales 

Noteiktas šūnas vērtības nolasīšana no Excel faila (.xlsx)

Tabula: EmployeeData.xlsx


Kā lasīt Excel failu Java

Piemērs

Nākamajā piemērā mēs nolasām 2 vērtībundrinda un 2ndkolonna. Rindu un kolonnu skaitīšana sākas no 0. Tātad programma atgriež “Programmatūras inženieris”.


Kā lasīt Excel failu Java

 //reading value of a particular cell import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class ReadCellExample { public static void main(String[] args) { ReadCellExample rc=new ReadCellExample(); //object of the class //reading the value of 2nd row and 2nd column String vOutput=rc.ReadCellData(2, 2); System.out.println(vOutput); } //method defined for reading a cell public String ReadCellData(int vRow, int vColumn) { String value=null; //variable for storing the cell value Workbook wb=null; //initialize Workbook null try { //reading data from a file in the form of bytes FileInputStream fis=new FileInputStream('C:\demo\EmployeeData.xlsx'); //constructs an XSSFWorkbook object, by buffering the whole stream into the memory wb=new XSSFWorkbook(fis); } catch(FileNotFoundException e) { e.printStackTrace(); } catch(IOException e1) { e1.printStackTrace(); } Sheet sheet=wb.getSheetAt(0); //getting the XSSFSheet object at given index Row row=sheet.getRow(vRow); //returns the logical row Cell cell=row.getCell(vColumn); //getting the cell representing the given column value=cell.getStringCellValue(); //getting cell value return value; //returns the cell value } } 

Izvade:

 Software Engineer