logo

كيفية قراءة ملف Excel في جافا

في هذا القسم، سنتعلم كيف يمكننا قراءة البيانات من ملف Excel.

في Java، لا تشبه قراءة ملف Excel قراءة ملف Word بسبب وجود خلايا في ملف Excel. لا توفر JDK واجهة برمجة تطبيقات مباشرة لقراءة أو كتابة مستند Microsoft Excel أو Word. علينا أن نعتمد على مكتبة الطرف الثالث وهي Apache POI.

ما هو أباتشي النقاط المهمة؟

أباتشي النقاط المهمة (سوء تنفيذ التعتيم) عبارة عن واجهة برمجة تطبيقات Java لقراءة وكتابة مستندات Microsoft في كلا التنسيقين .xls و .xlsx . يحتوي على فئات وواجهات. توفر مكتبة Apache POI تطبيقين لقراءة ملفات Excel:

فريد من نوعه
    تنفيذ HSSF (تنسيق جدول البيانات الرهيب):يشير إلى واجهة برمجة التطبيقات (API) التي تعمل مع Excel 2003 أو الإصدارات السابقة.تنفيذ XSSF (تنسيق جداول بيانات XML):يشير إلى واجهة برمجة التطبيقات (API) التي تعمل مع Excel 2007 أو الإصدارات الأحدث.

الواجهات والفئات في Apache POI

واجهات

    دفتر العمل:وهو يمثل مصنف اكسل . إنها واجهة يتم تنفيذها بواسطة HSSFWorkbook و XSSFWorkbook .ملزمة:إنها واجهة تمثل ورقة عمل اكسل . الورقة هي البنية المركزية للمصنف، والتي تمثل شبكة من الخلايا. تمتد واجهة الورقة java.lang.Iterable .صف:وهي أيضًا واجهة تمثل صف من جدول البيانات. تمتد واجهة الصف java.lang.Iterable . هناك فئتان ملموستان: HSSFRow و XSSFRow .خلية:إنها واجهة. إنه تمثيل رفيع المستوى لـ أ خلية في صف من جدول البيانات. HSSFCell و XSSFCell تنفيذ واجهة الخلية.

الطبقات

فئات XLS

    مصنف HSSF:إنها فئة تمثل ملف XLS.ورقة HSSF:إنها فئة تمثل الورقة في ملف XLS.صف HSSFR:إنها فئة تمثل صفًا في ورقة ملف XLS.HSSFCell:إنها فئة تمثل خلية في صف من ملف XLS.

فئات XLSX

    مصنف XSSF:إنها فئة تمثل ملف XLSX.ورقة XSSF:إنها فئة تمثل الورقة في ملف XLSX.XSSFRow:إنها فئة تمثل صفًا في ورقة ملف XLSX.XSSFCell:إنها فئة تمثل خلية في صف من ملف XLSX.

خطوات قراءة البيانات من ملف XLS

الخطوة 1: قم بإنشاء مشروع Java بسيط في Eclipse.

الخطوة 2: الآن قم بإنشاء مجلد lib في المشروع.

تحميل مشغل الوسائط يوتيوب vlc

الخطوه 3: قم بتنزيل ملفات jar التالية وأضفها إلى مجلد lib:

الخطوة 4: تعيين مسار الفصل:

انقر بزر الماوس الأيمن على المشروع ->إنشاء مسار ->إضافة JARs خارجية -> حدد جميع ملفات الجرة أعلاه -> تطبيق وأغلق.

الخطوة 5: الآن قم بإنشاء ملف فئة بالاسم قراءةExcelFileDemo واكتب الكود التالي في الملف .

الخطوة 6: قم بإنشاء ملف Excel باسم 'student.xls' واكتب بعض البيانات فيه.


كيفية قراءة ملف Excel في جافا

الخطوة 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

ستبقى جميع الخطوات كما هي باستثناء تنسيق الملف.

طاولة: user.xslx

خطأ في الحماية العامة

كيفية قراءة ملف Excel في جافا

مثال لقراءة ملف 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)

طاولة: بيانات الموظف.xlsx


كيفية قراءة ملف Excel في جافا

مثال

في المثال التالي، نقرأ قيمة 2اختصار الثانيالصف و2اختصار الثانيعمود. يبدأ حساب الصفوف والأعمدة من 0. لذلك يقوم البرنامج بإرجاع 'مهندس البرمجيات'.


كيفية قراءة ملف Excel في جافا

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