logo

Як прочитати файл Excel на Java

У цьому розділі ми дізнаємося, як ми можемо читати дані з файлу Excel.

У Java читання файлу Excel не схоже на читання файлу Word через клітинки у файлі Excel. JDK не надає прямого API для читання або запису документів Microsoft Excel або Word. Ми повинні покладатися на сторонню бібліотеку, яка є Apache POI.

Що таке Apache POI?

Apache POI (Poor Obfuscation Implementation) — це Java API для читання та запису документів Microsoft в обох форматах .xls і .xlsx . Він містить класи та інтерфейси. Бібліотека POI Apache надає дві реалізації для читання файлів Excel:

    Реалізація HSSF (Жахливий формат електронної таблиці):Він позначає API, який працює з Excel 2003 або попередніми версіями.Реалізація XSSF (XML SpreadSheet Format):Він позначає API, який працює з Excel 2007 або пізнішими версіями.

Інтерфейси та класи в Apache POI

Інтерфейси

    робочий зошит:Він являє собою Робоча книга Excel . Це реалізований інтерфейс HSSF Робочий зошит і XSSFРобочий зошит .Аркуш:Це інтерфейс, який представляє Робочий аркуш Excel . Аркуш — це центральна структура робочої книги, яка являє собою сітку комірок. Інтерфейс аркуша розширюється java.lang.Iterable .рядок:Це також інтерфейс, який представляє рядок електронної таблиці. Інтерфейс Row розширюється java.lang.Iterable . Існує два класи бетону: HSSFRow і XSSFRow .клітинка:Це інтерфейс. Це представлення високого рівня a клітина у рядку електронної таблиці. HSSFCell і XSSFCell реалізувати інтерфейс Cell.

Заняття

Класи XLS

    HSSFWorkbook:Це клас, що представляє файл XLS.HSSFSsheet:Це клас, що представляє аркуш у файлі XLS.HSSFRow:Це клас, що представляє рядок на аркуші файлу XLS.HSSFCell:Це клас, що представляє комірку в рядку файлу XLS.

Класи XLSX

    XSSFWorkbook:Це клас, що представляє файл XLSX.XSSFSsheet:Це клас, що представляє аркуш у файлі XLSX.XSSFRow:Це клас, який представляє рядок на аркуші файлу XLSX.XSSFCell:Це клас, що представляє комірку в рядку файлу XLSX.

Кроки для читання даних із файлу XLS

Крок 1: Створіть простий проект Java в eclipse.

крок 2: Тепер створіть папку lib у проекті.

java додавання до масиву

крок 3: Завантажте та додайте такі файли jar у папку lib:

крок 4: Встановіть шлях до класу:

Клацніть правою кнопкою миші на проекті -> Шлях збірки -> Додати зовнішні файли JAR -> виберіть усі зазначені вище файли jar -> Застосувати та закрити.

різниця між тигром і левом

крок 5: Тепер створіть файл класу з іменем ReadExcelFileDemo і запишіть наступний код у файл.

Крок 6: Створіть файл Excel із назвою «student.xls» і запишіть у нього деякі дані.


Як прочитати файл Excel на Java

Крок 7: Збережіть і запустіть програму.

Приклад читання файлу Excel (.xls).

 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' 

Читання файлу XLSX

Усі кроки залишаться незмінними, крім формату файлу.

Таблиця: працівник.xslx


Як прочитати файл Excel на Java

Приклад читання файлу Excel (.xlsx)

У цьому прикладі ми використовуємо клас XSSFWorkbook.

 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 

Читання певного значення клітинки з файлу Excel (.xlsx)

Таблиця: EmployeeData.xlsx

абстрактний клас

Як прочитати файл Excel на Java

приклад

У наступному прикладі ми читаємо значення 2ndрядок і 2ndколонка. Підрахунок рядків і стовпців починається з 0. Отже, програма повертає «Software Engineer».


Як прочитати файл Excel на 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 } } 

Вихід:

 Software Engineer