logo

Kaip skaityti Excel failą Java

Šiame skyriuje sužinosime, kaip galime nuskaityti duomenis iš „Excel“ failo.

„Java“ programoje „Excel“ failo skaitymas nėra panašus į „Word“ failo skaitymą, nes „Excel“ faile yra langelių. JDK nesuteikia tiesioginės API, kad būtų galima skaityti ar rašyti „Microsoft Excel“ arba „Word“ dokumentus. Turime pasikliauti trečiosios šalies biblioteka, kuri yra „Apache POI“.

Kas yra Apache POI?

Apache POI (Prastas obfuskacijos įgyvendinimas) yra „Java“ API, skirta skaityti ir rašyti „Microsoft“ dokumentus abiem formatais .xls ir .xlsx . Jame yra klasės ir sąsajos. „Apache POI“ bibliotekoje yra du „Excel“ failų skaitymo variantai:

kaip pasiekti icloud nuotraukas
    HSSF (Horrible SpreadSheet Format) diegimas:Tai reiškia API, kuri veikia su Excel 2003 arba ankstesnėmis versijomis.XSSF (XML skaičiuoklės formato) diegimas:Tai reiškia API, kuri veikia su Excel 2007 ar naujesnėmis versijomis.

Apache POI sąsajos ir klasės

Sąsajos

    Darbo knyga:Jis atstovauja an Excel darbaknygė . Tai sąsajos įgyvendinimas HSSFWorkbook ir XSSFWorkbook .Lapas:Tai sąsaja, vaizduojanti an Excel darbalapis . Lapas yra centrinė darbaknygės struktūra, vaizduojanti langelių tinklelį. Išplečiama lapo sąsaja java.lang.Iterable .Eilutė:Tai taip pat sąsaja, vaizduojanti eilė iš skaičiuoklės. Išplečiama eilutės sąsaja java.lang.Iterable . Yra dvi betono klasės: HSSFRrow ir XSSFRrow .Ląstelė:Tai sąsaja. Tai aukšto lygio reprezentacija a ląstelė skaičiuoklės eilutėje. HSSFCell ir XSSFCell įdiegti ląstelių sąsają.

Klasės

XLS klasės

    HSSFWorkbook:Tai klasė, atstovaujanti XLS failą.HSSFS lapas:Tai klasė, vaizduojanti lapą XLS faile.HSSFRrow:Tai klasė, vaizduojanti eilutę XLS failo lape.HSSFCell:Tai klasė, vaizduojanti langelį XLS failo eilutėje.

XLSX klasės

    XSSFWorkbook:Tai klasė, vaizduojanti XLSX failą.XSSFS lapas:Tai klasė, vaizduojanti lapą XLSX faile.XSSFRrow:Tai klasė, vaizduojanti eilutę XLSX failo lape.XSSFCell:Tai klasė, vaizduojanti langelį XLSX failo eilutėje.

Veiksmai nuskaityti duomenis iš XLS failo

1 žingsnis: Sukurkite paprastą „Java“ projektą „Eclipse“.

2 žingsnis: Dabar projekte sukurkite lib aplanką.

3 veiksmas: Atsisiųskite ir pridėkite šiuos jar failus į lib aplanką:

4 veiksmas: Nustatykite klasės kelią:

Dešiniuoju pelės mygtuku spustelėkite projektą -> Sukurti kelią -> Pridėti išorinius JAR - pasirinkite visus aukščiau pateiktus jar failus -> Taikyti ir uždaryti.

5 veiksmas: Dabar sukurkite klasės failą pavadinimu Skaitykite „ExcelFileDemo“. ir į failą įrašykite šį kodą.

6 veiksmas: Sukurkite „Excel“ failą pavadinimu „studentas.xls“ ir įrašykite į jį kai kuriuos duomenis.


Kaip skaityti Excel failą Java

7 veiksmas: Išsaugokite ir paleiskite programą.

„Excel“ failo (.xls) failo skaitymo pavyzdys

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

Išvestis:

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

Skaityti XLSX failą

Visi veiksmai išliks tokie patys, išskyrus failo formatą.

Lentelė: darbuotojas.xslx


Kaip skaityti Excel failą Java

„Excel“ failo (.xlsx) skaitymo pavyzdys

Šiame pavyzdyje mes naudojame XSSFWorkbook klasę.

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

Išvestis:

 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 

Konkrečios langelio reikšmės nuskaitymas iš „Excel“ failo (.xlsx)

Lentelė: EmployeeData.xlsx


Kaip skaityti Excel failą Java

Pavyzdys

java filtro srautas

Toliau pateiktame pavyzdyje skaitome 2 reikšmęndeilutė ir 2ndstulpelyje. Eilučių ir stulpelių skaičiavimas prasideda nuo 0. Taigi programa grąžina „Programinės įrangos inžinierius“.


Kaip skaityti Excel failą 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 } } 

Išvestis:

 Software Engineer