تعلم كيقية قراءة و كتابة ملفات الاكسل باستخدام JDBC

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

تعلم كيقية قراءة و كتابة ملفات الاكسل باستخدام JDBC

مُساهمة من طرف أحمد مناع في الإثنين فبراير 17, 2014 7:26 am

بسم الله الرحمن الرحيم

أهلا وسهلا بكم إخوانى الكرام ... فى دروس سابقة تعلمنا كيفية قراءة ملفات Excel إصدار XLS & XLSX بإستخدام المكتبة Apache POI ...و ايضا قد تعلمنا كيفية قراءة و كتابة مصنفات Excel بأستخدام المكتبة JExcel ... أما درس اليوم هو كيفية قراءة و كتابة ملفات الاكسل بدون الحاجة الى مكتبات خارجية و ذلك من خلال الكائن JDBC وذلك من خلال اتباع الخطوات التالية :

أولا قراءة مصنف أكسل



1_للاتصال قاعدة بيانات نحتاج إلى كائنات الاتصال وهى sql.Connection ,sql.DriverManager ,sql.SQLException ويتم أستيراد تلك الكائنات عن طريق الكود التالى :

الرمز:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;


2_ الاعلان عن الكائنات التى تستخدم لاتمام عملية الاتصال بملف الاكسل باستخدام الكائنات كما تعلمنا سابقا وهى : الكائن Connection وهو الخاص بنص الاتصال ...الكائن Statement وهو الخاص بجمل التحكم ....و الكائن Result Set وهو الخاص بمؤشر البيانات وذلك عن طريق الكود التالى :

الرمز:
Connection conn = null;
    Statement stmt = null;
    ResultSet rs = null;


3_ نقوم بتحميل سائق الاتصال JdbcOdbcDriver و تخزينة فى متغير نصى على النحو التالى :


الرمز:
String driver = "sun.jdbc.odbc.JdbcOdbcDriver";


4_ تحميل ملف الاكسل المراد قرائة وتخزينة فى متغير نصى على النحو التالى :
الرمز:
String url = "jdbc:odbc:Driver={Microsoft Excel Driver (*.xls)};DBQ=excelDB.xls;"
        + "DriverID=22;READONLY=false";

حيث ان excelDB هو الملف الاكسل المراد قرائته و يوجد فى نفس مسار التطبيق


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

الرمز:

String username = "yourName";
    String password = "yourPass";


6_ نقوم باستدعاء الطريقة forName وذلك لتحميل الفصيلة Class التي تحتوي على مشغل قاعدة البيانات ثم نقوم بتمرير سائق الاتصال JdbcOdbcDriver الذى تم تخزينة سابقا فى المتغير driver

الرمز:
Class.forName(driver);


7_ نقوم بأستدعاء الطريقة getConnection الموجودة فى الفصيلة DriverManager من الاتصال بقاعدة بيانات و تمريها للكائن الذى تم الاعلان عنه conn  ذلك عن طريق الكود التالى :
الرمز:

conn =DriverManager.getConnection(url, username, password);


8_ نقوم بإستدعاء الطريقة createStatement لانشاء الكائن Statement والذي سيستخدم للاستعلام و جلب البيانات من ملف الاكسل وذلك عن طريق الكود التالى :

الرمز:
stmt = conn.createStatement();


9_ نقوم بالاعلان عن متغير نصى وليكن excelQuery لحفظ جملة الاستعلام فية و ذلك عن طريق الكود التالى :

الرمز:
String excelQuery = "select * from [Sheet1$]";


10_تنفيذ الاستعلام من خلال استدعاء الطريقة executeQuery الموجودة فى الصنف Statement  و الذى قد عبرنا عنه بالكائن rs و ذلك على النحو التالى :

الرمز:
rs = stmt.executeQuery(excelQuery);


11_ نقوم بعمل حلقة تكرار للحصول على بيانات ورقة العمل الاولى فى مصنف أكسل على النحو التالى :

الرمز:
while (rs.next()) {
      System.out.println(rs.getString("FirstName") + " " + rs.getString("LastName"));
    }


12 _ أغلاق كائنات العمل

الرمز:
rs.close();
    stmt.close();
    conn.close();


و الشفرة الكاملة لقراءة مصن أكسل على النحو التالى :

الرمز:

package test9;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class Test9 {

public static void main(String[] args) throws Exception {
 Connection conn = null;
    Statement stmt = null;
    ResultSet rs = null;
    String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
    String url = "jdbc:odbc:Driver={Microsoft Excel Driver (*.xls)};DBQ=excelDB.xls;"
        + "DriverID=22;READONLY=false";
    Class.forName(driver);
    conn =DriverManager.getConnection(url, "", "");
    
    stmt = conn.createStatement();
    String excelQuery = "select * from [Sheet1$]";
    rs = stmt.executeQuery(excelQuery);
    
    while (rs.next()) {
      System.out.println(rs.getString("FirstName") + " " + rs.getString("LastName"));
    }
    
    rs.close();
    stmt.close();
    conn.close();
    
}
}


ثانيا : الكتابة فى مصنف أكسل


بالنسبة للكتابة فى مصنف أكسل باستخدام تلك الطريقة هو نفس الكود المستخدام أعلاه فى قراءة المصنف فيما عدا جملة الاستعلام و التى ستتغير الى :

الرمز:
String excelQuery = "insert into [Sheet1$](FirstName, LastName) values('A', 'K')";


ثم يتم تحديث بيانات الكائن stmt على النحو التالى :
الرمز:
 stmt.executeUpdate(excelQuery);


و الشفرة الكاملة للكتابة فى مصنف أكسل على النحو التالى :

الرمز:

package test9;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class Test9 {

public static void main(String[] args) throws Exception {
 Connection conn = null;
    Statement stmt = null;
    ResultSet rs = null;
    String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
    String url = "jdbc:odbc:Driver={Microsoft Excel Driver (*.xls)};DBQ=excelDB.xls;"
        + "DriverID=22;READONLY=false";
    Class.forName(driver);
    conn =DriverManager.getConnection(url, "", "");
    
    stmt = conn.createStatement();
    String excelQuery = "insert into [Sheet1$](FirstName, LastName) values('A', 'K')";
  
    stmt.executeUpdate(excelQuery);
    
    rs.close();
    stmt.close();
    conn.close();
    
}
}





و فى النهاية أشكركم على حسن الاستماع

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

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

أحمد مناع
.
.

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

http://egy-tech.forumegypt.net

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

رد: تعلم كيقية قراءة و كتابة ملفات الاكسل باستخدام JDBC

مُساهمة من طرف زهراء في الإثنين فبراير 17, 2014 11:47 am

تحياتى لك يا مبدع

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

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

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

رد: تعلم كيقية قراءة و كتابة ملفات الاكسل باستخدام JDBC

مُساهمة من طرف المبرمج الطموح في الإثنين نوفمبر 02, 2015 9:22 am

الله عليك ...عنجد مجهود عظيم

المبرمج الطموح
الاشراف
الاشراف

تاريخ التسجيل : 18/02/2011
المساهمات : 117
النقاط : 213
التقيم : 6
الدولة : مصر
الجنس : ذكر

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

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


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