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

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

اذهب الى الأسفل

تعلم كيفية قراءة و كتابة مصنفات Excel بأستخدام المكتبة JExcel  Empty تعلم كيفية قراءة و كتابة مصنفات 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);
 
و النتيجة على النحو التالى :
تعلم كيفية قراءة و كتابة مصنفات Excel بأستخدام المكتبة JExcel  Write-to-Excel-in-Java-1
_نقوم نقوم بإنشاء القيم  التى سيتم أدراجها فى خلايا ورقة العمل مع تحديد نوع البيانات المدرجة و أماكنها وذلك على النحو التالى :

الكود:
 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();
        }
    }


        
    }

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

تعلم كيفية قراءة و كتابة مصنفات Excel بأستخدام المكتبة JExcel  Write-to-Excel-in-Java-2
ثالثا : قراءة ملف اكسل

تعلم كيفية قراءة و كتابة مصنفات Excel بأستخدام المكتبة JExcel  Reading-excel-files-in-java-using-jexcel-api-1
_ فى الدباية نقوم باستيراد المكتبات التالية :
الكود:
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();
        }
        
 
    }
 
}

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

تعلم كيفية قراءة و كتابة مصنفات Excel بأستخدام المكتبة JExcel  Reading-excel-files-in-java-using-jexcel-api-2


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

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

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

https://egy-tech.forumegypt.net

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

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

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


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

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

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

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

الرجوع الى أعلى الصفحة

ََ

مواضيع ذات صلة


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