نقل البيانات من dbgrid إلى Excel
#11
لدى سؤال اضافي
طريقة تصدير dbgrid في حالة عدد الحقول حوالي 60 حقل
شكرا جزيلا
الرد
#12
بارك الله فيكم على هذا المجهود الطيب
الرد
#13
بارك الله فيك
الرد
#14
كود :
var i,i2,i3:integer;
ExcelApp :Variant;
begin
try
ExcelApp:=CreateOleObject('Excel.Application');
abstable2.First;
i:=4;
i2:=1;
i3:=1;
Button3.Caption:=' Excel Open ';
ExcelApp.Workbooks.Add;
while not abstable2.eof do
begin
if i2=1 then
ExcelApp.Cells[i,1].Value:=1
else
ExcelApp.Cells[i,1].Value:=i2;
Button3.Caption:='Insetion  :'+inttostr(i3);
ExcelApp.Cells[i,2].Value:=abstable2['matricule'];
ExcelApp.Cells[i,3].Value:=abstable2['nom'];
ExcelApp.Cells[i,4].Value:=abstable2['prenon'];
ExcelApp.Cells[i,5].Value:=abstable2['datedabsence'];
ExcelApp.Cells[i,6].Value:=abstable2['absence'];
abstable2.Next;
i:=i+1;
inc(i2);
  inc(i3);
end;
Button3.Caption:='Lancer Excel';
ExcelApp.Visible:=True;
except
showmessage('Impossible de Excute Excel');
end;
end;
الرد
#15
بارك اللله فيك أخي، ولكن عند محاولة التطبيق تظهر لي رسالة خطأ مكتوب فيها
[Avertissement] Unit1.pas(80): L'expression constante dépasse les limites de sous-étendueفما الحل أخي المبارك
الرد
#16
شكرا اخي شرح ولا اروع لكن عندي مشكلة وهي تتمثل في كيفية الحصول علي ExcelApplication
الرد
#17
بارك الله فيكم إخوتي و جزاكم الله كل خير
الرد
#18
سلام عليكم
بارك الله فيك
لاكن يوجد مشكلة في التاريخ
مثال 12/02/2018 عندما اقوم بتصدير البيانات الي exel يحول التاريخ الى 02/12/2018
من فظلك اريد المساعدة في حل هاذا المشكل
شكرا
الرد
#19
(13-04-2008, 02:12 AM)merouane كتب : عند التصدير (من DBGrid)


كود :
[color=Blue]Try[/color]
[COLOR=Black] Try
  ExcelApplication1.Visible[0]:=true;
  For i:=0 to DBGrid1.Columns.Count-1 do
  begin
    with Feuil.Range[A[i+1]+'1',A[i+1]+'1'] do
    begin
      Value[xlRangeValueDefault]:= DBGrid1.Columns.Items[i].Title.Caption;
      Font.Name:='times new roman';
      Font.Size:=10;
      Font.Bold:=True;
      With Interior do
      begin
        ColorIndex := 15;
        Pattern := xlSolid;
        PatternColorIndex := xlAutomatic;
      End;
      With Borders do
      begin
        LineStyle := xlContinuous;
        Weight := xlThin;
        ColorIndex := xlAutomatic;
      End;
    End;
  End;
 
  j:=2;
  Table1.DisableControls;
  Table1.First;
  While not Table1.Eof do
  begin
    For i:= 1 To  DBGrid1.Columns.Count Do
    begin
      s:=A[i]+inttostr(j);
      Feuil.Range[s,s].Value[xlRangeValueDefault] :=DBGrid1.Fields[i-1].AsString;
    end;
    Table1.Next;
    j:=j+1;
  end;
Finally
  ExcelApplication1.Cells.Select;
  ExcelApplication1.Columns.AutoFit;
  ExcelApplication1.Range['A1','A1'].Select;
End;
[color=Blue]Except[/color]
on E: Exception do MessageDlg(E.Message,mtError,[mbOK], E.HelpContext);[/COLOR]
[color=Blue]End;[/color]



هذه الطريقة تشتغل معي بشكل جد رائع مع دلفي 7 ،
لكن بعد الانتقال إلى دلفي Sydeny  واجهتني المشكلة التالية :


إقتباس :[dcc32 Erreur]  E2064 La partie gauche n'est pas affectable


تحديدا في السطر التالي :

كود :
Value[xlRangeValueDefault]:= DBGrid1.Columns.Items[i].Title.Caption;
هل من توجيه بارك الله فيكم.
اللهم اجعلني من أهل القرآن ، الذين هم أهلك و خاصتك.
تذكر بأن الوقت الذي تلهو فيه ، غيرك يبني مجده فيه.
الرد
#20
حلت المشكلة ولله الحمد.
المشكلة كانت في حزمة office المفعلة.
في بادئ الأمر كنت مفعل حزمة   Excel2000 .
و هي سبب المشكلة ،
قمت بإلغاء تفعيلها ، وفعلت بدلها حزمة ExcelXP.
اللهم اجعلني من أهل القرآن ، الذين هم أهلك و خاصتك.
تذكر بأن الوقت الذي تلهو فيه ، غيرك يبني مجده فيه.
الرد


التنقل السريع :


مستخدمين يتصفحوا هذا الموضوع: 1 ضيف