تعلم كيقية قراءة و كتابة ملفات الاكسل باستخدام 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();
    
}
}





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

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

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

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

http://egy-tech.forumegypt.net

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

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

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

تحياتى لك يا مبدع
avatar
زهراء
........
........

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

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

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

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

الله عليك ...عنجد مجهود عظيم
avatar
المبرمج الطموح
الاشراف
الاشراف

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

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

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


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