![]() |
|
تصدير قواعد البيانات لملف الإكسل - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي التقنية (https://delphi4arab.net/forum/forumdisplay.php?fid=6) +--- قسم : دلفي و التعامل مع قواعد البيانات (https://delphi4arab.net/forum/forumdisplay.php?fid=23) +--- الموضوع : تصدير قواعد البيانات لملف الإكسل (/showthread.php?tid=7701) الصفحات:
1
2
|
تصدير قواعد البيانات لملف الإكسل - أبو معاذ - 08-04-2016 السلام عليكم ورحمة الله وبركاته ، في الحقيقة هذا الموضوع طرحه أحد الإخوة القدامى أظنه مروان او الأخ MusK . لكن مع الترقية الجديدة للمنتدى لم يعد بالإمكان مشاهدة الموضوع. وحتى يبقى الأجر متواصل لصاحب الموضوع (وأسأل الله أن يجعل لي نصيبا من الأجر). هذا الموضوع هو كيفية تصدير قواعد البيانات إلى ملف الإكسل. و هو برنامج رائع لا يحتاج إلى مكونات إضافية. RE: تصدير قواعد البيانات لملف الإكسل - imad19_soft - 11-04-2018 سلام عليكم بارك الله فيك لاكن يوجد مشكلة في التاريخ مثال 12/02/2018 عندما اقوم بتصدير البيانات الي exel يحول التاريخ الى 02/12/2018 من فظلك اريد المساعدة في حل هاذا المشكل شكرا RE: تصدير قواعد البيانات لملف الإكسل - أبو معاذ - 09-05-2018 السلام عليكم ورحمة الله وبركاته ، كانت لدي نفس المشكلة في تصدير التواريخ ، وحلها هو كالتالي : لابد من معرفة نوع الحقل قبل تصديره ، فمثلا : هذا الكود استعمله في تصدير 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 (08-04-2016, 09:41 AM)أبو معاذ كتب : في الحقيقة هذا الموضوع طرحه أحد الإخوة القدامى أظنه مروان او الأخ MusK .السلام عليكم لم يضع شيئ...الموضوع الذي تقصده موجود هنا http://delphi4arab.net/forum/showthread.php?tid=136 RE: تصدير قواعد البيانات لملف الإكسل - imad19_soft - 09-05-2018 السلام عليكم اشكرك اخي أبو معاذ علي الرد لاكن اخي هذا الكود 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 اين اظعه RE: تصدير قواعد البيانات لملف الإكسل - Ben.Ja - 12-05-2018 هكذا PHP كود : procedure TFMonEtat.Button3Click(Sender: TObject);RE: تصدير قواعد البيانات لملف الإكسل - imad19_soft - 14-05-2018 سلام عليكم بارك الله فيك اخي ben. ja على الرد لاكن الكود فيه مشكلة من فظلك لو تعيد النظر فيه شكرا RE: تصدير قواعد البيانات لملف الإكسل - Ben.Ja - 14-05-2018 ما الخطأ الذي حدث لك؟ صور ان استطعت لا تنسى ذكر الوحدات هته في الجزء uses OleServer, ExcelXP, ExtCtrls RE: تصدير قواعد البيانات لملف الإكسل - imad19_soft - 14-05-2018 السلام عليكم اشكرك اخي ben . ja علي الرد مرى اخرى هذا هو الكود في form اريد ان اعرف اين الخلل كود : unit Unit9;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
unit Unit9;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Mask, DB, DBTables, Grids, DBGrids, DBCtrls, Buttons,
ComCtrls, ExtCtrls, OleServer, ExcelXP, Menus, ImgList, acAlphaImageList,
sBitBtn, sEdit, sSpeedButton, sGroupBox;
type
TForm9 = class(TForm)
DBGrid1: TDBGrid;
DateTimePicker1: TDateTimePicker;
DateTimePicker2: TDateTimePicker;
Query1: TQuery;
ExcelApplication1: TExcelApplication;
OpenDialog1: TOpenDialog;
Label1: TLabel;
Label2: TLabel;
MainMenu1: TMainMenu;
Menu1: TMenuItem;
Fermer1: TMenuItem;
Table1: TTable;
Table2: TTable;
DataSource1: TDataSource;
DataSource2: TDataSource;
Table2nbjour: TFloatField;
Table2nbbon: TFloatField;
Table2prgz: TFloatField;
Table2tarif: TFloatField;
Table2prixord: TFloatField;
Query1nbjour: TFloatField;
Query1prixord: TFloatField;
SpeedButton1: TSpeedButton;
Label3: TLabel;
SpeedButton2: TSpeedButton;
Label4: TLabel;
Label5: TLabel;
SpeedButton3: TSpeedButton;
SpeedButton5: TSpeedButton;
Label7: TLabel;
PopupMenu1: TPopupMenu;
AjouterMatrucule1: TMenuItem;
popimgs: TsAlphaImageList;
Table1Nord: TIntegerField;
Table1dateor: TDateTimeField;
Table1mat: TStringField;
Table1prix: TIntegerField;
Table1charg: TStringField;
Table1priklm: TIntegerField;
Table1Nom: TStringField;
Table1typc: TStringField;
Table2Nord: TIntegerField;
Table2desti: TStringField;
Table2klm: TIntegerField;
Table2Datd: TDateTimeField;
Table2mat: TStringField;
Table2Prklm: TStringField;
Query1Nord: TIntegerField;
Query1desti: TStringField;
Query1klm: TIntegerField;
Query1Datd: TDateTimeField;
Query1mat: TStringField;
Query1Non: TStringField;
Query1Prklm: TStringField;
Query1chgz: TIntegerField;
Query1nbbon: TIntegerField;
Query1Marque: TStringField;
Query1Ncat: TStringField;
Query1prgz: TFloatField;
sBitBtn1: TsBitBtn;
Query1Ecare: TFloatField;
sSpeedButton1: TsSpeedButton;
sEdit1: TsEdit;
Label6: TLabel;
sBitBtn2: TsBitBtn;
Query1charg: TStringField;
sRadioGroup1: TsRadioGroup;
sEdit2: TsEdit;
sEdit3: TsEdit;
sEdit4: TsEdit;
procedure DateTimePicker2Change(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure DBGrid1TitleClick(Column: TColumn);
procedure Fermer1Click(Sender: TObject);
procedure Table2CalcFields(DataSet: TDataSet);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure Query1CalcFields(DataSet: TDataSet);
procedure SpeedButton5Click(Sender: TObject);
procedure AjouterMatrucule1Click(Sender: TObject);
procedure sBitBtn1Click(Sender: TObject);
procedure sSpeedButton1Click(Sender: TObject);
procedure sBitBtn2Click(Sender: TObject);
private
{ Déclarations privées }
{ Déclarations publiques }
end;
var
Form9: TForm9;
MyFile: String;
a:array [1..26]of string[1]=('A','B','C','D','E','F','G','H','I','J','K','L',
'M','N','O','P','Q','R','S','T','u','V','W','X','Y','Z');
implementation
uses Unit7, Unit3, Unit26;
{$R *.dfm}
procedure TForm9.sBitBtn2Click(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[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;
Query1.First;
While not Query1.Eof do
begin
For i:= 1 To DBGrid1.Columns.Count Do
begin
s := A[i]+inttostr(j);
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 := 'dd/mm/yyyy';
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 ;
end;
Query1.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;RE: تصدير قواعد البيانات لملف الإكسل - Ben.Ja - 15-05-2018 لو ترفق صورة للخطأ يكون أفضل |