logo

Како читати Екцел датотеку у Јави

У овом одељку ћемо научити како можемо да читамо податке из Екцел датотеке.

У Јави, читање екцел датотеке није слично читању ворд датотеке због ћелија у екцел датотеци. ЈДК не пружа директан АПИ за читање или писање Мицрософт Екцел или Ворд документа. Морамо се ослонити на библиотеку треће стране која је Апацхе ПОИ.

Шта је Апацхе ПОИ?

Апацхе ПОИ (Лоша имплементација обфусцатион) је Јава АПИ за читање и писање Мицрософт докумената у оба формата .клс и .клск . Садржи класе и интерфејсе. Апацхе ПОИ библиотека пружа две имплементације за читање екцел датотека:

    Имплементација ХССФ (ужасног формата табеле):Означава АПИ који ради са Екцел 2003 или старијим верзијама.КСССФ (КСМЛ формат табеле) Имплементација:Означава АПИ који ради са Екцел 2007 или новијим верзијама.

Интерфејси и класе у Апацхе ПОИ

Интерфејси

    Радна свеска:То представља ан Екцел радна свеска . То је интерфејс имплементиран од стране ХССФВоркбоок и КСССФВоркбоок .Лист:То је интерфејс који представља Екцел радни лист . Лист је централна структура радне свеске, која представља мрежу ћелија. Интерфејс листа се проширује јава.ланг.Итерабле .ред:То је такође интерфејс који представља ред табеле. Интерфејс реда се проширује јава.ланг.Итерабле . Постоје две конкретне класе: ХССФРов и КСССФРов .Ћелија:То је интерфејс. То је представљање на високом нивоу а мобилни у реду табеле. ХССФЦелл и КСССФЦелл имплементирати Целл интерфејс.

класе

КСЛС Цлассес

    ХССФ радна свеска:То је класа која представља КСЛС датотеку.ХССФСхеет:То је класа која представља лист у КСЛС датотеци.ХССФРов:То је класа која представља ред на листу КСЛС датотеке.ХССФЦелл:То је класа која представља ћелију у реду КСЛС датотеке.

КСЛСКС Цлассес

лебдећи у цсс-у
    КСССФВоркбоок:То је класа која представља КСЛСКС датотеку.КСССФСхеет:То је класа која представља лист у КСЛСКС датотеци.КСССФРов:То је класа која представља ред на листу КСЛСКС датотеке.КСССФЦелл:То је класа која представља ћелију у реду КСЛСКС датотеке.

Кораци за читање података из КСЛС датотеке

Корак 1: Направите једноставан Јава пројекат у ецлипсе-у.

Корак 2: Сада направите фасциклу либ у пројекту.

Корак 3: Преузмите и додајте следеће јар датотеке у фасциклу либ:

мапа дрвета

4. корак: Подесите путању класе:

Кликните десним тастером миша на пројекат -> Путања изградње -> Додај екстерне ЈАР-ове -> изаберите све горе наведене јар датотеке -> Примени и затвори.

5. корак: Сада креирајте датотеку класе са именом РеадЕкцелФилеДемо и напишите следећи код у датотеку.

Корак 6: Направите екцел датотеку са именом 'студент.клс' и упишите неке податке у њу.


Како читати Екцел датотеку у Јави

7. корак: Сачувајте и покрените програм.

Пример читања екцел датотеке (.клс) датотеке

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

Излаз:

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

Читање КСЛСКС датотеке

Сви кораци ће остати исти осим формата датотеке.

Сто: запослен.кслк

стринг јава индекоф

Како читати Екцел датотеку у Јави

Пример прочитане екцел датотеке (.клск)

У овом примеру користимо класу КСССФВоркбоок.

јава 8
 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(); } } } 

Излаз:

 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 

Читање одређене вредности ћелије из Екцел датотеке (.клск)

Сто: ЕмплоиееДата.клск


Како читати Екцел датотеку у Јави

Пример

У следећем примеру читамо вредност 2ндред и 2ндколона. Бројање редова и колона почиње од 0. Дакле, програм враћа „Софтверски инжењер“.


Како читати Екцел датотеку у Јави

 //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 } } 

Излаз:

 Software Engineer