08-05-2022, 06:39 PM
الصفحات : 1 2
08-05-2022, 09:56 PM
السلام عليكم
تفضل
https://www.youtube.com/watch?v=fDoeSSRw...5E&index=5
الرابط الثاني
https://www.youtube.com/watch?v=Hi1Agzy1...DJ&index=6
لا أدري إن كان هناك مكون أو كمبونانت يفي بالغرض المطلوب دون العناء أرجو من له علم أن يساعد
تفضل
https://www.youtube.com/watch?v=fDoeSSRw...5E&index=5
الرابط الثاني
https://www.youtube.com/watch?v=Hi1Agzy1...DJ&index=6
لا أدري إن كان هناك مكون أو كمبونانت يفي بالغرض المطلوب دون العناء أرجو من له علم أن يساعد
09-05-2022, 01:00 PM
كود :
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;09-05-2022, 11:44 PM
(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;
اين اضع هذا الكود
10-05-2022, 06:42 PM
(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
18-05-2022, 10:49 PM
انظر الى المثال المرفق
19-05-2022, 07:38 PM
(18-05-2022, 10:49 PM)Ndagor كتب : [ -> ]انظر الى المثال المرفق
شكرا ما قصدته هو جلبه الى جدول اكسس موجود مسبقا مثلا جدول الطلبة يحتوي علي 100 طالب اقوم باضافة 200 طالب في اكسل ومعلوماتهم ثم اضيفهم الى جدول اكسس الاول
20-05-2022, 01:51 PM
حسنا يمكن استعمال المثال السابق للاستيراد بيانات اكسل و ااضافتها الى ملف اكسس ,,,بالفتراض انك تستعمل ADOQuery او ADOTable فكلاهما يقوم بنفس الشي ,,, يمكنك العمل Transaction لالغاء عملية الاضافة في حال وقوع خطا في استراد حيث يمكنك الغاء الاضافات الجديدة و البد ء من جديد بعد تصحيح البيانات الخطا في الاكسل ....
ملاحظة لاتقم بتغيير الثابت -4121 فهذا يستعمله الاكسل لتحدييك اللسطر الفارغ الاخير
ملاحظة لاتقم بتغيير الثابت -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;22-05-2022, 05:45 PM
(20-05-2022, 01:51 PM)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
ذعلى حساب مافهمت الجدول الاول هو الجدول الاكسل المراد اضافته والكود الثاني هو الذي يقوم باضافة الجدول الى اكسس ولكن عند تطبيق الكود ضهر لي ملف اكسل وليس اكسس
22-05-2022, 07:36 PM
الكود الاخير مجرد مثال يستعمل حقول .col1 col2 col3 قم بتعديل و بادخال اسماء الحقول الموجودة في ملف الاكسس الذي تستخدمه الامر ليس معقد.
الصفحات : 1 2