آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

دیتابیس اکسس

اندروید  4 سال پیش  3 سال پیش
0 0

ببخشید آیا میشه به دیتابیس اکسس متصل شد؟اگه میشه بفرمایید چطوری میشه؟

 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
ChookD1  3 سال پیش
0 0

سلام
باتوجه سرچی که زدم این کار شدنی هست ، اما من تابحال انجامش نداده ام.
از سوالی که پرسیده اید معلوم میشه که تازه کار هستید ، لذا ممکنه توش بمونید. اما بدونید که شدنی هست.

ابتدا به Gradle خودتون میرید و در قسمت Dependences ها دو خط زیر رو به پروژه اضاف کنید و سپس از بالا سمت راست در اندروید استودیو بر روی Sync کلیک کنید تا پروژه چیزای کتابخونه های موردنیازی که بهش اضاف کردید رو توی پروژه تون دانلود و بریزه.

implementation 'org.apache.poi:poi:3.17'
implementation 'org.apache.poi:poi-ooxml:3.17'

تقریبا کار تمامه

برای خوندنش از کد زیر استفاده کنید:

 
 public void readDataFromExcelSheet() {
        List<Bean> listOfBean = new ArrayList<>();
        try {
            String filename = "ExcelsheetName.xls";
            // Creating Input Stream
            File sd = Environment.getExternalStorageDirectory();
            File directory = new File(sd.getAbsolutePath());
            File file = new File(directory, filename);
            Workbook workbook = null;
            WorkbookSettings ws = new WorkbookSettings();
            ws.setGCDisabled(true);
            workbook = Workbook.getWorkbook(file, ws);

            int noOfSheets = workbook.getNumberOfSheets();//this is return how many sheets available in excelsheet
            String sheetsNames[] = workbook.getSheetNames();//this is return all sheets names available in excelsheet
            for (int x = 0; x < noOfSheets; x++)//here take all sheets
            {
                Sheet sheet = workbook.getSheet(x);//here i taken first sheet
                int rowCount = sheet.getRows();//count total number of row or data in that sheet
                for (int i = 0; i < rowCount; i++) {//take every row data
                    Cell[] column = sheet.getRow(i);//take all data of one row

                /*
                 for taking one by one column data 
                */
                    for (int j = 0; j < column.length; j++) {//take every column data of row
                        System.out.print("" + column[j].getContents() + "\t");//take one by one data
                    }
                /*
                 for taking column data  
                */
                    listOfBean.add(new Bean(column[0].getContents(), column[1].getContents(), column[2].getContents(), column[3].getContents()));

                }

//                if you want take different data from different sheets then use switch case
                Sheet sheet1;
                int rowCount1;
                switch (x) {
                    case 0:
                        //write code for sheet 0 read data
                        sheet1 = workbook.getSheet(0);//here i taken first sheet
                        rowCount1 = sheet1.getRows();//count total number of row or data in that sheet
                        for (int i = 0; i < rowCount1; i++) {//take every row data
                            Cell[] column = sheet1.getRow(i);//take all data of one row
                            listOfBean.add(new Bean(column[0].getContents(), column[1].getContents(), column[2].getContents(), column[3].getContents()));
                        }
                        break;
                    case 1:
                        //write code for sheet 1 read data
                        sheet1 = workbook.getSheet(1);//here i taken first sheet
                        rowCount1 = sheet1.getRows();//count total number of row or data in that sheet
                        for (int i = 0; i < rowCount1; i++) {//take every row data
                            Cell[] column = sheet1.getRow(i);//take all data of one row
                            listOfBean.add(new Bean(column[0].getContents(), column[1].getContents(), column[2].getContents(), column[3].getContents()));
                        }
                        break;
                }


            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

 

برای ایجاد کردنش هم از کد زیر استفاده کنید:

 
 File directory, sd, file;
    WritableWorkbook workbook;

    void createExcelSheet() {
        String csvFile = "ExcelsheetName.xls";
        sd = Environment.getExternalStorageDirectory();
        directory = new File(sd.getAbsolutePath());
        file = new File(directory, csvFile);
        WorkbookSettings wbSettings = new WorkbookSettings();
        wbSettings.setLocale(new Locale("en", "EN"));
        try {
            workbook = Workbook.createWorkbook(file, wbSettings);
            createFirstSheet();
            createSecondSheet();
            //closing cursor
            workbook.write();
            workbook.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    void createFirstSheet() {
        try {
            List<Bean> listdata = new ArrayList<>();

            listdata.add(new Bean("mr","firstName1","middleName1","lastName1"));
            listdata.add(new Bean("mr","firstName1","middleName1","lastName1"));
            listdata.add(new Bean("mr","firstName1","middleName1","lastName1"));
            //Excel sheet name. 0 (number)represents first sheet
            WritableSheet sheet = workbook.createSheet("sheet1", 0);
            // column and row title
            sheet.addCell(new Label(0, 0, "NameInitial"));
            sheet.addCell(new Label(1, 0, "firstName"));
            sheet.addCell(new Label(2, 0, "middleName"));
            sheet.addCell(new Label(3, 0, "lastName"));

            for (int i = 0; i < listdata.size(); i++) {
                sheet.addCell(new Label(0, i + 1, listdata.get(i).getInitial()));
                sheet.addCell(new Label(1, i + 1, listdata.get(i).getFirstName()));
                sheet.addCell(new Label(2, i + 1, listdata.get(i).getMiddleName()));
                sheet.addCell(new Label(3, i + 1, listdata.get(i).getLastName()));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    void createSecondSheet() {

        try {
            List<Bean> listdata = new ArrayList<>();
            listdata.add(new Bean("mr","firstName1","middleName1","lastName1"));
            listdata.add(new Bean("mr","firstName1","middleName1","lastName1"));
            listdata.add(new Bean("mr","firstName1","middleName1","lastName1"));
            //Excel sheet name. 0 (number)represents first sheet
            WritableSheet sheet = workbook.createSheet("sheet2", 0);
            // column and row title
            sheet.addCell(new Label(0, 0, "NameInitial"));
            sheet.addCell(new Label(1, 0, "firstName"));
            sheet.addCell(new Label(2, 0, "middleName"));
            sheet.addCell(new Label(3, 0, "lastName"));

            for (int i = 0; i < listdata.size(); i++) {
                sheet.addCell(new Label(0, i + 1, listdata.get(i).getInitial()));
                sheet.addCell(new Label(1, i + 1, listdata.get(i).getFirstName()));
                sheet.addCell(new Label(2, i + 1, listdata.get(i).getMiddleName()));
                sheet.addCell(new Label(3, i + 1, listdata.get(i).getLastName()));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

سپس برای ایجاد یک ردیف توی فایل درست شده ی خودتون کد زیر رو استفاده کنید:

 sheet.addCell(new Label(      0     ,    0    ,"NameInitial")); /// که این خط نمونه ای اصلِ زیر هست
sheet.addCell(new Label(columnNumber,rowNumber,dataString ));

کلاس نمونه که اگه کارکرده باشید توی ریسایکلر ویو و اداپترها کاربرد داره رو هم ایجاد کنید ( یک نمونه هست برای استفاده کردن ، نگارنده اسمشو گذاشته : Bean :

 
class Bean {
        String initial, firstName, middleName, lastName;

        Bean(String initial, String firstName, String middleName, String lastName) {
            this.initial = initial;
            this.firstName = firstName;
            this.middleName = middleName;
            this.lastName = lastName;
        }

        public String getInitial() {
            return initial;
        }

        public String getFirstName() {
            return firstName;
        }

        public String getMiddleName() {
            return middleName;
        }

        public String getLastName() {
            return lastName;
        }

    }

 

منبع

0 0
خیلی ممنون (3 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .