اشكرك اخي ben . ja علي الرد مرى اخرى
كود :
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;
end.