درخواست های ارتباط
جستجو
لیست دوستان من
صندوق پیام
همه را دیدم
  • در حال دریافت لیست پیام ها
صندوق پیام
رویدادها
همه را دیدم
  • در حال دریافت لیست رویدادها
همه رویدادهای من
تخفیف های وب سایت
همه تخفیف ها

عضویت در

کانال تلگرام

توسینسو

اطلاعات مطلب
مدرس/نویسنده
مهدی عادلی فر
امتیاز: 157218
رتبه:6
154
197
296
1572
مهدی عادلی، بنیان گذار TOSINSO. کارشناس ارشد نرم افزار کامپیوتر از دانشگاه صنعتی امیرکبیر و #C و جاوا و اندروید کار می کنم. در زمینه های موبایل و وب و ویندوز فعالیت دارم و به طراحی نرم افزار و اصول مهندسی نرم افزار علاقه مندم. پروفایل کاربر

خواندن فایل اکسل در زبان جاوا

تاریخ 16 ماه قبل
نظرات 0
بازدیدها 373
سلام به همه itpro های عزیز معمولا همه ما از برنامه های آفیس استفاده کرده ایم و همه می دانند که این برنامه ها در محیط های اداری و حرفه ای نقش بسیار پررنگی را دارند. یکی از این برنامه های کاربردی برنامه اکسل می باشد. یک برنامه صفحه گسترده که می توان به کمک آن انواع اطلاعات آماری و لیستی را نگهداری نمود. به خاطر اهمیت بسیار زیاد این فایل ها یکی از نیاز هایی که ممکن است برای کاربران پیش بیاید این است که اطلاعات موجود در فایل های این برنامه در داخل دیتابیس ذخیره شوند و همچنین بتوان با استفاده از برنامه سازمانی فایل های اکسل متنوعی را تولید نمود. در این آموزش نحوه خواندن فایل های اکس توسط زبان جاوا را توضیح می دهیم. برای این کار لازم است که آشنایی ابتدایی با زبان جاوا داشته باشید. برای این کار از کتابخانه apache poi-ooxml استفاده می کنیم. اگر شما برای مدیریت وابستگی های پروژه خود از maven استفاده می کنید می توانید برای اضافه شدن این کتابخانه به پروژه شما می توانید سطرهای زیر را داخل فایل pom.xml پروژه خود اضافه کنید و پروژه خود را بیلد کنید.
<!— https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml —>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>3.9</version>
</dependency>
این کتابخانه مفاهیمی در خود از جمله workbook , sheet, row , cell را در خود دارد که می توان به همه اجزای یک فایل اکسل دسترسی داشت. بعد از این که کتابخانه مورد نظر را به پروژه خود اضافه کردید شروع به نوشتن برنامه می کنیم. برای خواندن فایل اکس ابتدا باید یک XSSWorkBook از فایل مورد نظر بسازیم. این کار باعث می‌شود که یک workbook ساخته شود که می‌توان به شیت های مختلف اکسل دسترسی داشته باشیم. نحوه ساخت workbook به شکل زیر می‌باشد. دقت کنید که ورودی constructor مربوط به workbook‌ از نوع fileInputStream می‌باشد.
FileInputStream excelFile = new FileInputStream(new File(FILE_NAME));
            Workbook workbook = new XSSFWorkbook(excelFile);

برای اینکه به یک شیت از فایل اکسل مورد نظر دسترسی داشته باشیم می‌توانیم آن شیت را با استفاده از متد getSheet و اندیس آن شیت پیدا کنیم. مانند کد زیر
 Sheet datatypeSheet = workbook.getSheetAt(0);

حال می‌توانیم فایل اکسل را سطر به سطر خوانده و پردازش کنیم. برای این کار می‌توان از iteratorها استفاده کرد. دقت داشته باشید که هر سطر هم تعدادی سلول دارد که می‌توان به مقدار های آن‌ها با استفاده از iterator ها دسترسی داشت. برای مثال در برنامه زیر یک فایل اکسل خوانده شده و مقادیر سلول‌های آن در خروجی چاپ می‌شود.
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Iterator;

public class ApachePOIExcelRead {

    private static final String FILE_NAME = "/tmp/MyFirstExcel.xlsx";

    public static void main(String[] args) {

        try {

            FileInputStream excelFile = new FileInputStream(new File(FILE_NAME));
            Workbook workbook = new XSSFWorkbook(excelFile);
            Sheet datatypeSheet = workbook.getSheetAt(0);
            Iterator<Row> iterator = datatypeSheet.iterator();

            while (iterator.hasNext()) {

                Row currentRow = iterator.next();
                Iterator<Cell> cellIterator = currentRow.iterator();

                while (cellIterator.hasNext()) {

                    Cell currentCell = cellIterator.next();

                    if (currentCell.getCellTypeEnum() == CellType.STRING) {
                        System.out.print(currentCell.getStringCellValue() + "--");
                    } else if (currentCell.getCellTypeEnum() == CellType.NUMERIC) {
                        System.out.print(currentCell.getNumericCellValue() + "--");
                    }

                }
                System.out.println();

            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}

دقت داشته باشید که در کد بالا اگر از کتابخانه‌های poi-ooxml با ورژن بالاتر استفاده می‌کنید getCellTypeEnum وجود ندارد و getCellType جایگزین آن شده است.ITPRO باشید.

نویسنده: مهدی عادلی فر
منبع: Itpro
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد.
برچسب ها
مطالب مرتبط

در حال دریافت اطلاعات

نظرات
هیچ نظری ارسال نشده است

    برای ارسال نظر ابتدا به سایت وارد شوید