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

كيفية ربط -Excel- مع -Delphi -

2 مشترك

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

كيفية ربط -Excel- مع -Delphi - Empty كيفية ربط -Excel- مع -Delphi -

مُساهمة  mah11 29/7/2013, 1:41 am



بسم الله الرحمن الرحيم
والصلاة والسلام على أشرف المرسلين
--------------
هذه محاولة متوضعة



كيفية ربط -Excel- مع -Delphi -

الخطوة الاولى

افتح اكسال
اكتب في الخانات من -A3- الى -A12- اسماء الطلاب
اكتب في الخانات من -B3- الى -B12- لقب الطلاب
اكتب في الخانات من -C3- الى -C12- تاريخ ميلاد
اكتب في الخانات من -D3- الى -D12- الاقسام الطلاب
اكتب في الخانات من -E3- الى -E12- رقم التسجيل
احفظ الملف باسم -bOOK1-

الخكوة الثانية

افتح - Module Base de données - وهذا بنسبة النسخ الفرنسية
والتابعة لدلفي
افتح -Fichier- ثم -Nouveau- ثم -Table- اختر -Paradox 7-
اكتب كما في المثال :
---------------------------------
- Nom de champ- Type - Taille - Index -
---------------------------------
- Num- - A - 10 - 0 -
- Nom - A - 15 - 0 -
- Prenom - A - 20 - 0 -
- Date_Na - A - 10 - 0 -
- Class - A - 15 - 0 -
---------------------------------
ملاحظة لا تكتب الاصفار في -Index-
احفظ الملف باسم -Para01.db-

الخطوة الثلثة
افتح دلفي واحفظ المشروع بأي اسم تختاره مع ملف قاعدة البيانات -Para01.db- أي في نفس المجلد

unit Uk1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls, Grids, DBGrids, ExtCtrls, DBCtrls, Db,
DBTables, Buttons;

type
TForm1 = class(TForm)
// ضع على الموذج هذه العناصر
Button1: TButton; // عدم تمكين استعمالها أي -Button1.Enabled := false;-
Button2: TButton;
Button3: TButton;
// ضع -Table1- واحد على النموذج -Form1-
Table1: TTable;
// ربط -Table1- بقاعدة البيانات -Para01.db- وذلك من خلال الخصية -TableName- في مفتش الكائنات
// تفعيل الخاصية -Active-
// ضع -- واحد على النموذج -Form1-
// ضع -DataSource1- واحد على النموذج -Form1-
DataSource1: TDataSource;
// ربط -DataSource1- بــ -Table1- وذلك من خلال الخاصية -DataSet-
// ضع -DBNavigator1- واحد على النموذج -Form1-
DBNavigator1: TDBNavigator;
// ربط -DBNavigator1- بــ -DataSource1- وذلك من خلال الخاصية -DataSource -
// ضع -DBGrid1- واحد على النموذج -Form1-
DBGrid1: TDBGrid;
// ربط -DBGrid1- بــ -DataSource1- وذلك من خلال الخاصية -DataSource -
// انقر مرتين على -Table1- داخل المربع انقر باليمنى واختر -Ajouter tous les champs- اغلق المربع
// أي ظهور كافة الحقول وهي
Table1Num: TStringField;
Table1Nom: TStringField;
Table1Prenom: TStringField;
Table1Date_Na: TStringField;
Table1Classe: TStringField;
// مربع تحرير متعددة السطور -Memo1- ضع 5 منه
Memo1: TMemo;
Memo2: TMemo;
Memo3: TMemo;
Memo4: TMemo;
Memo5: TMemo;
// مربع تحرير ذو السطر واحد -Edit1- ضع 1 منه
Edit1: TEdit;
// ضع -BitBtn1- واحدة
BitBtn1: TBitBtn;
// ضع -OpenDialog1- واحد
OpenDialog1: TOpenDialog;

procedure Button1Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;

var
Form1: TForm1;
Excel10: OleVariant;

implementation
//
// هذه الوحدة خاصة باستدعاء تطبيقات خارجية مثل إكسال ووورد وغيرهم
uses ComObj;

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
// تصريح داخل الاجراء --
// تصريح بمتغيير صحيح وهو -i-
var i: integer;
begin
// بداية
try // يحاول أو يجرب فتح
// هذه الدالة لاستدعاء إكسال أو فتح اكسال
Excel10 := GetActiveOleObject('Excel.Application');
except // اذا لم تنجح المحاولة وهي المحاولة الاولى
try // حاول أو يجرب فتح مرة ثانية
Excel10 := CreateOleObject('Excel.Application');
except// اذا لم تنجح المحاولة وهي المحاولة الثانية
// ظهور رسالة
ShowMessage('لايمكن بدأ تشغيل إكسال أو لم يثبت إكسال بعد ?');
// هذه الدالة للخروج من الاجراء نهائيا
Exit;
// نهاية المحاولة الاولى
end;
// نهاية المحاولة الثانية
end;
// هذه الدالة لـ
// فتح المستند المحدد في مربع التحرير
Excel10.Workbooks.Open(Edit1.Text);
// بداية حلقة دوارة من 1 الى 10
for i := 1 to 10 do
// بداية الحلقة
begin
// تعتبر مربعات تحرير المتعددة هذه كــوسائط
// ضع محتوى الحجرات من 1 و 1 الى 1 و 10
Memo1.Lines.add(Excel10.Cells[i, 1].Value);
// ضع محتوى الحجرات من 2 و 1 الى 2 و 10
Memo2.Lines.add(Excel10.Cells[i, 2].Value);
// ضع محتوى الحجرات من 3 و 1 الى 3 و 10
Memo3.Lines.add(Excel10.Cells[i, 3].Value);
// ضع محتوى الحجرات من 4 و 1 الى 4 و 10
Memo4.Lines.add(Excel10.Cells[i, 4].Value);
// ضع محتوى الحجرات من 5 و 1 الى 5 و 10
Memo5.Lines.add(Excel10.Cells[i, 5].Value);
// مثلا الحجرة وهي -cells[1, 1].Value - قيمة الخالية أو الحجرة الممثلة في اكسال بــ -A1-
// نهاية الحلقة
end;
// فتح -Table1-
Table1.Open;
// انتقال الى التسجيلة الاولى في -Table1-
Table1.First;
// بداية حلقة دوارة من 1 الى مجموع سطور مربع التحرير
for i := 0 to Memo1.Lines.Count - 1 do
// عدم وجود فراق في سطور مربع التحريروهو شرط
if Memo1.Lines.Strings[i] <> '' then
begin
// بداية الاظافة الى قاعدة البيانات -Para01.db-
Table1.Append;
// وضع محتوى سطور من 1 الى مجموع السطور في الحقل -Num-
Table1Num.Value := Memo5.Lines.Strings[i];
// وضع محتوى سطور من 1 الى مجموع السطور في الحقل -Nom-
Table1Nom.Value := Memo1.Lines.Strings[i];
// وضع محتوى سطور من 1 الى مجموع السطور في الحقل -Prenom-
Table1Prenom.Value := Memo2.Lines.Strings[i];
// وضع محتوى سطور من 1 الى مجموع السطور في الحقل -Date-
Table1Date_Na.Value := Memo3.Lines.Strings[i];
// وضع محتوى سطور من 1 الى مجموع السطور في الحقل -Classe-
Table1Classe.Value := Memo4.Lines.Strings[i];
// تمام الاظافة من اجل تهيئة الى اظافة جديدة
Table1.Post;
// انتقال الى المرحلة التالية
Table1.Next;
// نهاية الحلقة
end;
// نهاية الاجراء
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
// اغلاق إكسال
if not VarIsEmpty(Excel10) then
begin
Excel10.DisplayAlerts := False;
Excel10.Quit;
end;

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Table1.Open;
Table1.First;
while not Table1.Eof do
begin
Table1.Delete;
Table1.Next;
end;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
// مربع حوار فتح
if OpenDialog1.Execute then
// وضع اسم الملف المحدد من مربع الحوار فتح في مربع تحرير
Edit1.Text := OpenDialog1.FileName;
// تفعيل -Button1- بالقيمة -True-
Button1.Enabled := true;
end;

end.

mah11
Admin

عدد المساهمات : 364
تاريخ التسجيل : 21/06/2013

https://delph.forumalgerie.net

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

كيفية ربط -Excel- مع -Delphi - Empty رد: كيفية ربط -Excel- مع -Delphi -

مُساهمة  Admin 21/3/2014, 2:46 pm

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

مشكور على الموضوع و تارك الله فيك

Admin
مبتدئ في البرمجة

عدد المساهمات : 47
تاريخ التسجيل : 21/03/2014

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

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

- مواضيع مماثلة

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