var asheet,range:variant; i,K,M,N,y :integer; ls_FileName:string; tsList :TStringList; s :string; begin ExcelApplication1.Visible[0]:=True; ExcelApplication1.Workbooks.Add(xlWBATWorksheet,0); asheet:=ExcelApplication1.Worksheets.Item[1]; i:=DBGrid1.DataSource.DataSet.FieldCount; range:=asheet.range[asheet.cells[1,1],asheet.cells[1,i]]; range.merge;//合并单元格 range.HorizontalAlignment:=xlCenter;//居中 range.Font.Size:=14;//设置字体大小 range.value:=Trim(EdtTiTle.Text);//赋值 for i:=0 to DBGrid1.Columns.Count-1 do asheet.cells[2,i+1].value:=Trim(DBGrid1.Columns.Items[i].Title.Caption); K:=1; N:=DBGrid1.Columns.count; I:=DBGrid1.DataSource.DataSet.RecordCount; tsList:=TStringList.Create; try DBGrid1.DataSource.DataSet.first; while not DBGrid1.DataSource.DataSet.Eof do begin s:=''; for y:=0 to n-1 do begin s:=s+Trim(DBGrid1.DataSource.DataSet.Fields[y].AsString)+#9; Application.ProcessMessages; end; tsList.Add(s);//读取到STRINGLIST DBGrid1.DataSource.DataSet.next; end; Clipboard.AsText:=tsList.Text;//复制到剪贴板 finally tsList.Free; end; ExcelApplication1.Disconnect; asheet.cells[3,1].select; aSheet.Paste;//粘贴 range:=asheet.range[asheet.cells[2,1],asheet.cells[DBGrid1.DataSource.DataSet.RecordCount+2,DBGrid1.DataSource.DataSet.FieldCount]]; range.select;//选择列 range.borders.linestyle:=1;//画线 for i:=1 to DBGrid1.DataSource.DataSet.FieldCount do begin range:=asheet.range[asheet.cells[1,i],asheet.cells[DBGrid1.DataSource.DataSet.RecordCount,i]]; range.EntireColumn.AutoFit;//自适应 end; Screen.Cursor:=crDefault; ExcelApplication1.Disconnect; aSheet:=Unassigned; DBGrid1.DataSource.DataSet.First; end;
http://www.51delphi.com/delphi/soft?type=数据库
asheet,range:variant;
i,K,M,N,y :integer;
ls_FileName:string;
tsList :TStringList;
s :string;
begin
ExcelApplication1.Visible[0]:=True;
ExcelApplication1.Workbooks.Add(xlWBATWorksheet,0);
asheet:=ExcelApplication1.Worksheets.Item[1];
i:=DBGrid1.DataSource.DataSet.FieldCount;
range:=asheet.range[asheet.cells[1,1],asheet.cells[1,i]];
range.merge;//合并单元格
range.HorizontalAlignment:=xlCenter;//居中
range.Font.Size:=14;//设置字体大小
range.value:=Trim(EdtTiTle.Text);//赋值
for i:=0 to DBGrid1.Columns.Count-1 do
asheet.cells[2,i+1].value:=Trim(DBGrid1.Columns.Items[i].Title.Caption);
K:=1;
N:=DBGrid1.Columns.count;
I:=DBGrid1.DataSource.DataSet.RecordCount;
tsList:=TStringList.Create;
try
DBGrid1.DataSource.DataSet.first;
while not DBGrid1.DataSource.DataSet.Eof do
begin
s:='';
for y:=0 to n-1 do
begin
s:=s+Trim(DBGrid1.DataSource.DataSet.Fields[y].AsString)+#9;
Application.ProcessMessages;
end;
tsList.Add(s);//读取到STRINGLIST
DBGrid1.DataSource.DataSet.next;
end;
Clipboard.AsText:=tsList.Text;//复制到剪贴板
finally
tsList.Free;
end;
ExcelApplication1.Disconnect;
asheet.cells[3,1].select;
aSheet.Paste;//粘贴
range:=asheet.range[asheet.cells[2,1],asheet.cells[DBGrid1.DataSource.DataSet.RecordCount+2,DBGrid1.DataSource.DataSet.FieldCount]];
range.select;//选择列
range.borders.linestyle:=1;//画线
for i:=1 to DBGrid1.DataSource.DataSet.FieldCount do begin
range:=asheet.range[asheet.cells[1,i],asheet.cells[DBGrid1.DataSource.DataSet.RecordCount,i]];
range.EntireColumn.AutoFit;//自适应
end;
Screen.Cursor:=crDefault;
ExcelApplication1.Disconnect;
aSheet:=Unassigned;
DBGrid1.DataSource.DataSet.First;
end;