تعلم كيفية قراءة و كتابة مصنفات Excel بأستخدام المكتبة JExcel

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

تعلم كيفية قراءة و كتابة مصنفات Excel بأستخدام المكتبة JExcel

مُساهمة من طرف أحمد مناع في الثلاثاء سبتمبر 24, 2013 11:52 am

بسم الله الرحمن الرحيم
أهلا وسهلا بكم إخوانى الكرام و مرحبا بكم فى منتدى مصر التقنى ....درس اليوم عن كيفية التعامل مع جداول البيانات إكسل كالقراءة و الكتابة فيها وذلك باستخدام المكتبة JExcel




أولا : التعريف بالمكتبة JExcel


المكتبة JExcelApi هى مكتبة مفتوحة المصدر تمكن المطورين من القراءة والكتابة فى جداول البيانات إكسل بشكل حيوي أو تعديلها وذلك باستخدام تيار إخراج stream وبالتالي يمكنك الوصول إلى جداول البيانات إكسل ليس فقط على القرص الصلب بل ايضا عبر شبكة الإنترنت وتطبيقات ويب إنترانت أو أى مقبتس أخر socket

_ بعض الميزات للمكتبة :

-تمكنك من قراءة مصنفات أكسل الاصدار 95, 97, 2000, 2003
_تمكنك من القراءة و الكتابة ( من إصدار Excel 97 فما فوق)
_تمكنك من انشاء مصنف Excel 2000
_ تدعم تنسيق الخطوط و التاريخ و الارقام  
_تدعم تظليل و تلوين ودمج الخلايا
_ تستطيع تعديل أوارق العمل القائمة وتدويلها
_تدعم نسخ الخرائط
_تدعم نسخ و إدراج الصور إلى جداول البيانات

 رابط تحميل المكتبة

ثانيا :إنشاء و كتابة ملف Excel

_لكى تستطيع إنشاء ملف Excel ومن ثم الكتابة فيه باستخدام تلك المكتبة يجب عليك إستيراد المكتبات التالية .

الرمز:
import java.io.File;
import java.io.IOException;
import java.util.Date;

import jxl.*;
import jxl.write.*;
import jxl.write.Boolean;
import jxl.write.biff.RowsExceededException;
import jxl.write.Number;
_ نقوم بتحديد مسار حفظ و اسم ملف أكسل المراد إنشائه و ذلك على النحو التالى :

الرمز:
File exlFile = new File("c:/write_test.xls");
_ نقوم بانشاء مثيل جديد للكائن WritableWorkbook و الذى سيتخدم لانشاء ملف أكسل باستخدام الاسلوب createWorkbook مع تمرير اسم ومسار حفظ املف اليه وذلك على النحو التالى :

الرمز:
WritableWorkbook writableWorkbook = Workbook
                    .createWorkbook(exlFile);
_ نقوم بإنشاء مثيل جديد للكائن WritableWorksheet و الذى يستخدم فى ادراج أو إنشاء ورقة عمل Worksheet للمنصف من خلال الاسلوب createSheet وذلك على النحو التالى :

الرمز:
 WritableSheet writableSheet = writableWorkbook.createSheet(
                    "Sheet1", 0);
 
و النتيجة على النحو التالى :
_نقوم نقوم بإنشاء القيم  التى سيتم أدراجها فى خلايا ورقة العمل مع تحديد نوع البيانات المدرجة و أماكنها وذلك على النحو التالى :

الرمز:
 Label label = new Label(0, 0, "Label (String)");
            DateTime date = new DateTime(1, 0, new Date());
            Boolean bool = new Boolean(2, 0, true);
            Number num = new Number(3, 0, 9.99);
وكما ترى فى الشفرة أعلاه يتم الاعلان عن نوع البيانات و الذى يتطلب ثلاث معطيات رقم العمود , رقم الصف , وقيمة الخلية

_نقوم بعد ذلك بادراج البيانات التى تم تجهيزها سابقا فى خلايا ورقة العمل وذلك على النحو التالى :

الرمز:
 writableSheet.addCell(label);
            writableSheet.addCell(date);
            writableSheet.addCell(bool);
            writableSheet.addCell(num);
_ بعد ذلك نقوم بكتابة الملف ومن ثم أغلاقه وذلك على النحو التالى :

الرمز:
writableWorkbook.write();
            writableWorkbook.close();
و الشفرة الكاملة لانشاء ملف أكسل سيكون على النحو التالى :

الرمز:

package excel;

import java.io.File;
import java.io.IOException;
import java.util.Date;

import jxl.*;
import jxl.write.*;
import jxl.write.Boolean;
import jxl.write.biff.RowsExceededException;
import jxl.write.Number;


public class Excel {

    
    public static void main(String[] args) {
        
      try {
            File exlFile = new File("c:/write_test.xls");
            WritableWorkbook writableWorkbook = Workbook
                    .createWorkbook(exlFile);
 
            WritableSheet writableSheet = writableWorkbook.createSheet(
                    "Sheet1", 6);
 
            Label label = new Label(0, 0, "Label (String)");
            DateTime date = new DateTime(1, 0, new Date());
            Boolean bool = new Boolean(2, 0, true);
            Number num = new Number(3, 0, 9.99);
 
            writableSheet.addCell(label);
            writableSheet.addCell(date);
            writableSheet.addCell(bool);
            writableSheet.addCell(num);
 
            writableWorkbook.write();
            writableWorkbook.close();
 
        } catch (IOException e) {
            e.printStackTrace();
        } catch (RowsExceededException e) {
            e.printStackTrace();
        } catch (WriteException e) {
            e.printStackTrace();
        }
    }


        
    }

و النتيجة على النحو التالى :

ثالثا : قراءة ملف اكسل

_ فى الدباية نقوم باستيراد المكتبات التالية :
الرمز:
import jxl.*;
import jxl.read.biff.BiffException;
 
import java.io.File;
import java.io.IOException;
_ نقوم بانشاء مثيل  للكائن Workbook ثم أستخدام الاسلوب getWorkbook للحصول على ملف أكسل المطلوب قرائه من خلال تحديد اسم و مسار هذا الملف و ذلك على النحو التالى :

الرمز:
Workbook wrk1 =  Workbook.getWorkbook(new File("C:/test.xls"));
_ نقوم بإنشاء مثيل للكائن Sheet  للحصول على ورقة العمل الأولى في ملف Excel. بطريقة مماثلة يمكنك الحصول على  أي ورقة أخرى في ملف Excel كنت تعمل على أكثر من واحد ورقة من خلال تحديد رقم الورقة ...حيث أن الرقم 0 يمثل ورقة العمل الاولى فى الملف ....وذلك على النحو التالى :

الرمز:
Sheet sheet1 = wrk1.getSheet(0);
_ نقوم بالحصول على قيم خلايا ورقة العمل .... و للحصول على خلية معينة في ورقة العمل وهذا يتوقف على الوسيطات التي تم تمريرها إلى الأسلوب getCell. الوسيطة الأولى يمثل العمود والوسيطة الثانية تمثل الصف وذلك على النحو التالى :

الرمز:
Cell colArow1 = sheet1.getCell(0, 0);
            Cell colBrow1 = sheet1.getCell(1, 0);
            Cell colArow2 = sheet1.getCell(0, 1);

_ نقوم بعد ذلك باستخراج محتويات الخلية من خلال الاسلوب getContents و الذى يستخدم فى استخراج محتويات الخلية كسلسه نصية و ذلك على النحو التالى :

الرمز:
String str_colArow1 = colArow1.getContents();
و اليكم هذا المثال الكامل التوضيحى لقراة ملف أكسل ....

الرمز:
import jxl.*;
import jxl.read.biff.BiffException;
 
import java.io.File;
import java.io.IOException;
 
public class JavaExcelRead {
 
    public static void main(String[] args) {
        
        try {
            
            Workbook wrk1 =  Workbook.getWorkbook(new File("C:/test.xls"));
            
             Sheet sheet1 = wrk1.getSheet(0);
            
            Cell colArow1 = sheet1.getCell(0, 0);
            Cell colBrow1 = sheet1.getCell(1, 0);
            Cell colArow2 = sheet1.getCell(0, 1);
            
            String str_colArow1 = colArow1.getContents();
            String str_colBrow1 = colBrow1.getContents();
            String str_colArow2 = colArow2.getContents();
            
             System.out.println("Contents of cell Col A Row 1: \""+str_colArow1 + "\"");
            System.out.println("Contents of cell Col B Row 1: \""+str_colBrow1 + "\"");
            System.out.println("Contents of cell Col A Row 2: \""+str_colArow2 + "\"");
 
            
        } catch (BiffException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        
 
    }
 
}

و النتيجة على النحو التالى :




أشكركم و الى اللقاء فى درس جديد إن شاء الله تعالى

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم

إن فقدت مكان بذورك التي بذرتها يوما ما سيخبرك المطر أين زرعتها ..لذا إبذر الخير فوق أي أرض وتحت أي سماء ومع أي أحد.. فأنت لا تعلم أين تجده ومتى تجده؟! إزرع جميلا ولو في غير موضعه .... فلا يضيع جميلا أينما زرعا .. فما أجمل العطاء... فقد تجد جزاءه في الدنيا أو يكون لك ذخرا في الآخرة

أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 809
النقاط : 1478
التقيم : 69
الدولة : مصر
الجنس : ذكر

http://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: تعلم كيفية قراءة و كتابة مصنفات Excel بأستخدام المكتبة JExcel

مُساهمة من طرف زهراء في الخميس سبتمبر 26, 2013 8:42 pm


بارك الله لك فى علمك و جزاك الله عنا كل خير نظير ما تقدمه لنا


زهراء
........
........

تاريخ التسجيل : 18/02/2011
المساهمات : 262
النقاط : 372
التقيم : 24
الدولة : مصر
الجنس : انثى

الرجوع الى أعلى الصفحة اذهب الى الأسفل

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى