procedure TForm1.Button3Click(Sender: TObject);
var
ExcelApplication1:TExcelApplication;
ExcelWorksheet1:TExcelWorksheet;
ExcelWorkbook1:TExcelWorkbook;
i,j:integer;
begin
try
ExcelApplication1:=TExcelApplication.Create(Application);
ExcelWorksheet1:=TExcelWorksheet.Create(Application);
ExcelWorkbook1:=TExcelWorkbook.Create(Application);
ExcelApplication1.Connect;
ExcelApplication1.Visible[0]:=True;
except
Application.Messagebox(‘Excel没有安装!‘,‘Hello‘,MB_ICONERROR+mb_Ok);
Abort;
end;
try
ExcelApplication1.Workbooks.Add(EmptyParam,0);
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);
ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1]as _worksheet);
DBGridEh1.DataSource.DataSet.First;
for j:=0 to DBGridEh1.DataSource.DataSet.Fields.Count-2 do
begin
ExcelWorksheet1.Cells.item[3,j+1]:=DBGridEh1.Columns[j].Title.Caption;//导出DBGridEh1中显示的字段标题
//ExcelWorksheet1.Cells.item[3,j+1]:=DBGridEh1.DataSource.DataSet.Fields[j].DisplayLabel;//导出数据库中字段名
ExcelWorksheet1.Cells.item[3,j+1].font.size:=‘10‘;
end;
for i:=4 to DBGridEh1.DataSource.DataSet.RecordCount + 3 do //从excel的第4行到最后
begin
for j:= 1 to DBGridEh1.DataSource.DataSet.Fields.Count - 1 do //从DBGridEh1的第1列到最后
begin
//ExcelWorksheet1.Cells.item[i,j+1]:=DBGridEh1.DataSource.DataSet.Fields[j].Asstring;
//ExcelWorksheet1.Cells.item[i,j+1].font.size:=‘10‘;
****************************************
ExcelWorksheet1.Range[ExcelWorksheet1.Cells.item[1,2], ExcelWorksheet1.Cells.item[i,2]].NumberFormatLocal:=‘@‘;//第二列设为文本格式
****************************************
ExcelWorksheet1.Cells.item[i,j]:=DBGridEh1.DataSource.DataSet.Fields[j].Asstring;
ExcelWorksheet1.Cells.item[i,j].font.size:=‘10‘;
end;
DBGridEh1.DataSource.DataSet.Next;
end;
ExcelWorksheet1.Columns.AutoFit;
ExcelWorksheet1.Cells.item[1,2]:=‘预测表‘+Formatdatetime(‘YYYYmmdd‘,Now);//DBGridEh1.Columns[0].FieldName; //在excel中第一行显示标题
ExcelWorksheet1.Cells.Item[1,2].font.size:=‘14‘;
finally
ExcelWorkSheet1.Disconnect;
ExcelWorkBook1.Disconnect;
ExcelApplication1.Disconnect;
end;
end;
*******************************************************************
dbgrideh通用打印
unit uPrint;
interface
uses
DBGridEh,PrnDbgeh,SysUtils,Graphics,Forms,Printers,windows;
procedure Prnt(AGrid:TDBGridEh;AOwner:Tform;APageHeader:string=‘‘;
ALineType:TPageColontitleLineType=pcltnon);
implementation
//==============================================================================
// linetype取值{pcltDoubleLine;pcltsingleline;pcltnon}
// AOwner:TForm TPrintDBGridEh.Create(AOwner); 负责TPrintDBGridEh类对象FREE
// TPrinterOrientation = (poPortrait, poLandscape); 纸张竖、横
//==============================================================================
procedure Prnt(AGrid:TDBGridEh;AOwner:TForm;APageHeader:string=‘‘;
ALineType:TPageColontitleLineType=pcltnon);
var
prn:TPrintDBGridEh;
begin
if AGrid.DataSource.DataSet.IsEmpty then exit;
prn:=TPrintDBGridEh.Create(AOwner);
with prn.PageHeader do
begin
Font.Name:=‘宋体‘;
Font.Size:=12;
Font.Style:=[fsbold];
LineType:=ALineType;
CenterText.Text:=APageHeader;
end;
prn.DBGridEh:=AGrid;
prn.Preview;
end;
end.