المشاركات : 32
المواضيع 8
:
: 7
الإنتساب : May 2020
لديا جدول اسمه etud1
واريد ان اجلب له بيانات اكسل بحيث هده البيانات تاتي تحت الاخرى مباشرة
وكل مرة استدعى بيانات تاتي تحت الاخرى
المشاركات : 382
المواضيع 69
:
: 146
الإنتساب : Dec 2008
السلام عليكم
تفضل
https://www.youtube.com/watch?v=fDoeSSRw...5E&index=5
الرابط الثاني
https://www.youtube.com/watch?v=Hi1Agzy1...DJ&index=6
لا أدري إن كان هناك مكون أو كمبونانت يفي بالغرض المطلوب دون العناء أرجو من له علم أن يساعد
المشاركات : 34
المواضيع 0
:
: 6
الإنتساب : Feb 2022
09-05-2022, 01:00 PM
(آخر تعديل لهذه المشاركة: 09-05-2022, 01:02 PM بواسطة Ndagor .)
كود :
implementation
{$R *.dfm}
uses comobj;
procedure TForm2.Button1Click(Sender: TObject);
var
xlApp,xlSheet,xlFile:Variant;
line:integer;
S1,S2,S3:string;
begin
xlApp:= CreateOleObject('Excel.Application');
try
xlApp.Visible := False;
xlApp.DisplayAlerts := False;
xlFile := xlApp.Workbooks.Open('C:\Users\user33\Documents\test.xlsx');
xlSheet:=xlFile.Sheets['Feuil1'];
for line := 1 to 10 do
begin
S1:=VarToStr(xlSheet.Cells[1].Item[line].value);
S2:=VarToStr(xlSheet.Cells[2].Item[line].value);
S3:=VarToStr(xlSheet.Cells[3].Item[line].value);
ShowmessageFmt('%s ; %s ; %s',[S1,S2,S3]);
end;
finally
xlApp.Quit;
end;
end;
المشاركات : 32
المواضيع 8
:
: 7
الإنتساب : May 2020
(09-05-2022, 01:00 PM) Ndagor كتب : كود :
implementation
{$R *.dfm}
uses comobj;
procedure TForm2.Button1Click(Sender: TObject);
var
xlApp,xlSheet,xlFile:Variant;
line:integer;
S1,S2,S3:string;
begin
xlApp:= CreateOleObject('Excel.Application');
try
xlApp.Visible := False;
xlApp.DisplayAlerts := False;
xlFile := xlApp.Workbooks.Open('C:\Users\user33\Documents\test.xlsx');
xlSheet:=xlFile.Sheets['Feuil1'];
for line := 1 to 10 do
begin
S1:=VarToStr(xlSheet.Cells[1].Item[line].value);
S2:=VarToStr(xlSheet.Cells[2].Item[line].value);
S3:=VarToStr(xlSheet.Cells[3].Item[line].value);
ShowmessageFmt('%s ; %s ; %s',[S1,S2,S3]);
end;
finally
xlApp.Quit;
end;
end;
اين اضع هذا الكود
المشاركات : 32
المواضيع 8
:
: 7
الإنتساب : May 2020
(09-05-2022, 11:44 PM) tahar1983 كتب : (09-05-2022, 01:00 PM) Ndagor كتب : كود :
implementation
{$R *.dfm}
uses comobj;
procedure TForm2.Button1Click(Sender: TObject);
var
xlApp,xlSheet,xlFile:Variant;
line:integer;
S1,S2,S3:string;
begin
xlApp:= CreateOleObject('Excel.Application');
try
xlApp.Visible := False;
xlApp.DisplayAlerts := False;
xlFile := xlApp.Workbooks.Open('C:\Users\user33\Documents\test.xlsx');
xlSheet:=xlFile.Sheets['Feuil1'];
for line := 1 to 10 do
begin
S1:=VarToStr(xlSheet.Cells[1].Item[line].value);
S2:=VarToStr(xlSheet.Cells[2].Item[line].value);
S3:=VarToStr(xlSheet.Cells[3].Item[line].value);
ShowmessageFmt('%s ; %s ; %s',[S1,S2,S3]);
end;
finally
xlApp.Quit;
end;
end;
اين اضع هذا الكود
اين الجدول في الكود و dbgrid
المشاركات : 34
المواضيع 0
:
: 6
الإنتساب : Feb 2022
انظر الى المثال المرفق
الملفات المرفقة
xlConnection.zip (الحجم : 100.38 ك ب / التحميلات : 10)
كل من 1 user says قال شكرا ل Ndagor على المشاركة المفيدة 1 user says Thank You to Ndagor for this post
• tahar1983
المشاركات : 32
المواضيع 8
:
: 7
الإنتساب : May 2020
(18-05-2022, 10:49 PM) Ndagor كتب : انظر الى المثال المرفق
شكرا ما قصدته هو جلبه الى جدول اكسس موجود مسبقا مثلا جدول الطلبة يحتوي علي 100 طالب اقوم باضافة 200 طالب في اكسل ومعلوماتهم ثم اضيفهم الى جدول اكسس الاول
المشاركات : 34
المواضيع 0
:
: 6
الإنتساب : Feb 2022
منذ 6 ساعة مضت
(آخر تعديل لهذه المشاركة: منذ 6 ساعة مضت بواسطة Ndagor .)
حسنا يمكن استعمال المثال السابق للاستيراد بيانات اكسل و ااضافتها الى ملف اكسس ,,,بالفتراض انك تستعمل ADOQuery او ADOTable فكلاهما يقوم بنفس الشي ,,, يمكنك العمل Transaction لالغاء عملية الاضافة في حال وقوع خطا في استراد حيث يمكنك الغاء الاضافات الجديدة و البد ء من جديد بعد تصحيح البيانات الخطا في الاكسل ....
ملاحظة لاتقم بتغيير الثابت -4121 فهذا يستعمله الاكسل لتحدييك اللسطر الفارغ الاخير
كود :
uses comobj;
procedure TForm2.Button1Click(Sender: TObject);
var
ExelFile,Dir:string;
xlApp,xlSheet,xlFile:Variant;
line,LastCorrect:integer;
begin
Dir:=ExtractFilePath(ParamStr(0));
if not PromptForFilename(ExelFile,'Excel|*.xlsx','','', Dir) then
Exit;
xlApp:= CreateOleObject('Excel.Application');
try
xlApp.Visible := False;
xlApp.DisplayAlerts := False;
xlFile := xlApp.Workbooks.Open(ExelFile);
xlSheet:=xlFile.Sheets['Feuil1'];
ADOQuery1.DisableControls();
try
LastCorrect:= xlSheet.Range['A1'].End[-4121].Row;
for line := 2 to LastCorrect do
begin
ADOQuery1.Append();
ADOQuery1.FieldByName('col1').AsVariant:=xlSheet.Cells[1].Item[line].value;
ADOQuery1.FieldByName('col2').AsVariant:=xlSheet.Cells[2].Item[line].value;
ADOQuery1.FieldByName('col3').AsVariant:=xlSheet.Cells[3].Item[line].value;
ADOQuery1.Post();
end;
finally
ADOQuery1.EnableControls();
end;
finally
xlApp.Quit;
end;
end;