logo

כיצד לקרוא קובץ אקסל ב-Java

בחלק זה, אנו הולכים ללמוד כיצד אנו יכולים לקרוא נתונים מקובץ אקסל.

ב-Java, קריאת קובץ אקסל אינה דומה לקובץ Word, בגלל תאים בקובץ אקסל. JDK אינו מספק API ישיר לקריאה או כתיבה של מסמכי Microsoft Excel או Word. עלינו להסתמך על ספריית הצד השלישי שהיא Apache POI.

מה זה אפאצ'י POI?

POI של אפאצ'י (Poor Obfuscation Implementation) הוא Java API לקריאה וכתיבה של Microsoft Documents בשני הפורמטים .xls ו .xlsx . הוא מכיל מחלקות וממשקים. ספריית POI של Apache מספקת שני יישומים לקריאת קבצי אקסל:

java core java
    יישום HSSF (פורמט גיליון אלקטרוני מחריד):זה מציין API שעובד עם Excel 2003 או גרסאות קודמות.יישום XSSF (פורמט גיליון אלקטרוני של XML):זה מציין API שעובד עם Excel 2007 או גרסאות מאוחרות יותר.

ממשקים ושיעורים ב-Apache POI

ממשקים

    חוברת עבודה:זה מייצג א חוברת עבודה של אקסל . זהו ממשק ליישם על ידי HSSFWorkbook ו XSSFWorkbook .דַף:זהו ממשק המייצג את גיליון עבודה של אקסל . גיליון הוא מבנה מרכזי של חוברת עבודה, המייצגת רשת של תאים. ממשק ה-Sheet מתרחב java.lang.Iterable .שׁוּרָה:זהו גם ממשק המייצג את שׁוּרָה של הגיליון האלקטרוני. ממשק Row מתרחב java.lang.Iterable . ישנם שני שיעורי בטון: HSSFRow ו XSSFRow .תָא:זה ממשק. זהו ייצוג ברמה גבוהה של א תָא בשורה של הגיליון האלקטרוני. HSSFCell ו XSSFCell ליישם ממשק Cell.

שיעורים

שיעורי XLS

    ספר עבודה של HSSF:זוהי מחלקה המייצגת את קובץ ה-XLS.HSSFSheet:זוהי מחלקה המייצגת את הגיליון בקובץ XLS.HSSFRow:זוהי מחלקה המייצגת שורה בגיליון של קובץ XLS.HSSFCell:זוהי מחלקה המייצגת תא בשורה של קובץ XLS.

שיעורי XLSX

    XSSFWorkbook:זוהי מחלקה המייצגת את קובץ XLSX.גיליון XSSFS:זוהי מחלקה המייצגת את הגיליון בקובץ XLSX.XSSFRow:זוהי מחלקה המייצגת שורה בגיליון של קובץ XLSX.XSSFCell:זוהי מחלקה המייצגת תא בשורה של קובץ XLSX.

שלבים לקריאת נתונים מקובץ XLS

שלב 1: צור פרויקט Java פשוט ב-eclipse.

שלב 2: כעת, צור תיקיית lib בפרויקט.

שלב 3: הורד והוסף את קבצי ה-jar הבאים בתיקייה lib:

שלב 4: הגדר את נתיב הכיתה:

לחץ לחיצה ימנית על הפרויקט -> בניית נתיב -> הוסף JARs חיצוניים -> בחר את כל קבצי ה-jar לעיל -> החל וסגור.

שלב 5: כעת צור קובץ כיתה עם השם ReadExcelFileDemo ורשום את הקוד הבא בקובץ.

שלב 6: צור קובץ אקסל עם השם 'student.xls' וכתוב בו כמה נתונים.


כיצד לקרוא קובץ אקסל ב-Java

שלב 7: שמור והפעל את התוכנית.

דוגמה לקריאת קובץ אקסל (.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


כיצד לקרוא קובץ אקסל ב-Java

דוגמה לקובץ אקסל לקרוא (.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 

קריאת ערך תא מסוים מקובץ אקסל (.xlsx)

שולחן: EmployeeData.xlsx


כיצד לקרוא קובץ אקסל ב-Java

דוגמא

בדוגמה הבאה, אנו קוראים את הערך של ה-2נדשורה וה-2נדטור. ספירת השורות והעמודות מתחילות מ-0. אז התוכנית מחזירה 'מהנדס תוכנה'.


כיצד לקרוא קובץ אקסל ב-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