تصدير قواعد البيانات لملف الإكسل
#3
السلام عليكم ورحمة الله وبركاته ،
كانت لدي نفس المشكلة في تصدير التواريخ ،
وحلها هو كالتالي :
لابد من معرفة نوع الحقل قبل تصديره ،
فمثلا :
هذا الكود استعمله في تصدير DBGRID إلى EXCEL  (ويعكس إظهار التواريخ)
كود :
procedure TFMonEtat.Button3Click(Sender: TObject); var Tab: _workbook;     Feuil: _worksheet;     i,j:Integer;     S:shortstring; begin    try     ExcelApplication1.Connect;     ExcelApplication1.Visible[0]:=False;     Tab:=ExcelApplication1.Workbooks.Add(xlWBATWorksheet,0);     //ExcelApplication1.Visible[0]:=true;     feuil:=Tab.Worksheets[1] as _worksheet;           For i:=0 to DBGrid1.Columns.Count-1 do           begin             with Feuil.Range[MonTableau[i+1]+'1',MonTableau[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;           xQuery1.First;           While not xQuery1.Eof do           begin              For i:= 1 To  DBGrid1.Columns.Count Do              begin                 s := MonTableau[i]+inttostr(j);                Feuil.Range[s,s].Value[xlRangeValueDefault] :=DBGrid1.Fields[i-1].AsString;              end;              xQuery1.Next;              j:=j+1;           end;        finally           SUIMsgDlg(' Exportation des données Terminée . ','MyApp',mtInformation,[mbOK],suiMessageDialog1.UIStyle);         ExcelApplication1.Visible[0]:=true;         ExcelApplication1.Cells.Select;         ExcelApplication1.Columns.AutoFit;         ExcelApplication1.Range['A1','A1'].Select;         ExcelApplication1.Disconnect;    end;   end;



وحلها كالتالي :

                               
كود :
                if DBGrid1.Fields[i-1].DataType  = ftCurrency then                 begin                    //Feuil.Range[s,s].NumberFormat  := '#,##0.00';                    Feuil.Range[s,s].Value[xlRangeValueDefault] := DBGrid1.Fields[i-1].AsCurrency;                 end                 else                     if DBGrid1.Fields[i-1].DataType  in [ftDate,ftDateTime] then                     begin                        Feuil.Range[s,s].NumberFormat  := 'jj/mm/aaaa';                        Feuil.Range[s,s].Value[xlRangeValueDefault] := DBGrid1.Fields[i-1].AsDateTime;                     end                     else                       begin                          Feuil.Range[s,s].NumberFormat  := 'Text';                          Feuil.Range[s,s].Value[xlRangeValueDefault] := '''' + DBGrid1.Fields[i-1].AsString;                       end ;

عسى أن تنفع الإخوة ،
بالتوفيق.
اللهم اجعلني من أهل القرآن ، الذين هم أهلك و خاصتك.
تذكر بأن الوقت الذي تلهو فيه ، غيرك يبني مجده فيه.
الرد


الردود في هذا الموضوع
RE: تصدير قواعد البيانات لملف الإكسل - بواسطة أبو معاذ - 09-05-2018, 09:06 AM

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


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم