خواندن فایل اکسل در جاوا
در این جلسه، تیم کدگیت را با آموزش خواندن فایل اکسل در جاوا همراهی کنید. این آموزش پیش نیازهای زیادی دارد!!!! لطفا قبل از خواندن این آموزش پیش نیازها را مطالعه کنید.
- Generic
- FileInputStream
- اضافه کردن کتابخانه به پروژه در جاوا
- Iterator در collection
- File
- آشنایی با شی گرایی
- آشنایی با دستور switch
- آشنایی با حلقه while
- آشنایی با فایل
اکسل
مایکروسافت اکسل: جزء برنامههای صفحه گسترده است. این نرمافزار، توسط شرکت مایکروسافت نوشته، توسعه و پخش میشود.این نرمافزار برای سیستم عامل مایکروسافت ویندوز و اواس ده اپل ارائه شده است.
البته نسخهای از این نرمافزار در مجموعهٔ ویندوز فون آفیس ارائه شده است که مخصوص سیستم عامل تلفن همراه ویندوز فون میباشد.نسخهای از این نرمافزار نیز در مجموعه مایکروسافت آفیس لایو ارائه شده است که به صورت رایانش ابری، اجرا میشود.این برنامه برای محاسبات ریاضی (با قابلیت انجام محاسبات دشوار ریاضی) و ترسیم نمودار به وسیله ابزارهای گرافیکی به کار میرود. اکسل بعد از نسخه ۵ در ۱۹۹۳، جزئی از مایکروسافت آفیس شد.
فایل اکسل در جاوا
اکسل یکی از معروف ترین فرمت فایل هاست که توسط شرکت ماکروسافت ارائه شده است. با وجود اینکه اکسل متن باز نیست ولی تیم POI با مهندسی معکوس فرمت اکسل را پیدا کرده و با نوشتن یک کتابخانه، کار را برای ما راحت کرده اند.
کتابخانه poi
کتابخانه poi یک Api کامل برای خواندن و نوشتن فایل اکسل در جاوا است. این کتابخانه قابلیت کار با فایل های اکسل با فرمت xls و xlsx را دارد. برای استفاده از این کتابخانه:
- کتابخانه را دانلود کنید.(فایل باینری را دانلود کنید)
- کتابخانه را از حالت rar خارج کنید
- کتابخانه را به classpath خود اضافه کنید
- اگر با فرمت xls کار میکنید به فایل poi-VERSION.jar نیاز دارید.
- اگر با فرمت xlsx کار میکنید به فایل های زیر نیاز دارید
- poi-ooxml-VERSION.jar
- poi-ooxml-schemas-VERSION.jar
- xmlbeans-VERSION.jar
کار با کتابخانه poi
کتابخانه poi دارای 2 کلاس مهم است که با آن رو به رو میشوید:
- HSSF: نشان دهنده کار با فایل اکسل 2003 به پایین(منظور فرمت xls است)
- XSSF: نشان دهنده کار با فایل اکسل 2007 به بالا (فرمت xlsx)
کتابخانه poi دارای interface های مختلفی است که مهمترین آتها شامل:
- Workbook: یک نمایش سطح بالا از میز کار در اکسل.کلاسهای HSSFWorkbook و XSSFWorkbook آن را پیاده سازی کردند.
- Sheet: نمایش ساده از صفحه در اکسل. کلاس های HSSFSheet و XSSFSheet از آن استفاده کردند.
- Row: نمایش ساده از سطر در اکسل. کلاسهای HSSFRow و XSSFRow از آن استفاده کردند.
- Cell: نمایش ساده از یک سلول(خانه) در اکسل. کلاسهای HSSFCell و XSSFCell آن را پیاده سازی کردند.
کد خواندن فایل اکسل در جاوا
در این قسمت به پیاده سازی کد توضیحات قسمت بالا میپردازیم. ابتدا فایل اکسل که میخواهیم آن را بخوانیم را میسازیم.

کد خواندن فایل در اکسل به صورت زیر است.
public class SimpleExcelReaderExample {
public static void main(String[] args) throws IOException {
String excelFilePath = "D:\\test.xlsx";
FileInputStream inputStream = new FileInputStream(new File(excelFilePath));
Workbook workbook = new XSSFWorkbook(inputStream);
Sheet firstSheet = workbook.getSheetAt(0);
Iterator<Row> iterator = firstSheet.iterator();
while (iterator.hasNext()) {
Row nextRow = iterator.next();
Iterator<Cell> cellIterator = nextRow.cellIterator();
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
switch (cell.getCellType()) {
case Cell.CELL_TYPE_STRING:
System.out.print(cell.getStringCellValue());
break;
case Cell.CELL_TYPE_BOOLEAN:
System.out.print(cell.getBooleanCellValue());
break;
case Cell.CELL_TYPE_NUMERIC:
System.out.print(cell.getNumericCellValue());
break;
}
System.out.print(" - ");
}
System.out.println();
}
workbook.close();
inputStream.close();
}
خروجی برنامه بالا به صورت زیر است:

سلام این کدها قدیمی شده