procedure TForm1.Button11Click(Sender: TObject); var eclApp,WorkBook:olevariant; xlsFileName:string; i,j:integer; begin if SaveDialog1.Execute then xlsFileName:=SaveDialog1.FileName; try eclApp:=CreateOleObject('Excel.Application'); WorkBook:=CreateOleObject('Excel.Sheet'); except Application.MessageBox('系统没有安装Microsoft Excel','Microsoft Excel',MB_OK+MB_ICONWarning); Exit; end; try WorkBook:=eclApp.workbooks.Add; for i:=0 to DBGrid1.Columns.Count-1 do begin eclApp.Cells(1,i+1):=DBGrid1.Columns[i].FieldName; end; DBGrid1.DataSource.DataSet.First; j:=2; while not DBGrid1.DataSource.DataSet.Eof do begin for i:=0 to DBGrid1.DataSource.DataSet.FieldCount-1 do begin eclApp.Cells(j,i+1):=DBGrid1.DataSource.DataSet.Fields[i].Value; end; DBGrid1.DataSource.DataSet.Next; inc(j); end; WorkBook.SaveAS(xlsFileName); WorkBook.close; except ShowMessage('文件导出失败!'); Exit; end; Application.MessageBox('保存成功!','恭喜',MB_OK + MB_ICONINFORMATION); end;
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Grids, DBGrids, Db, DBTables, Excel97, OleServer, Word97;
type
TForm1 = class(TForm)
ExcelApplication1: TExcelApplication;
ExcelWorkbook1: TExcelWorkbook;
ExcelWorksheet1: TExcelWorksheet;
Table1: TTable;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Button1: TButton;
Button4: TButton;
WordApplication1: TWordApplication;
WordDocument1: TWordDocument;
procedure Button1Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);
var
i, row, column: integer;
begin
Try
ExcelApplication1.Connect;
Except
MessageDlg('Excel may not be installed',
mtError, [mbOk], 0);
Abort;
End;
ExcelApplication1.Visible[0] := True;
ExcelApplication1.Caption := 'Excel Application';
ExcelApplication1.Workbooks.Add(Null, 0);
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);
ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _Worksheet);
DBGrid.DataSource.DataSet.Open;
row := 1;
While Not (DBGrid.DataSource.DataSet.Eof) do
begin
column := 1;
for i := 1 to DBGrid.DataSource.DataSet.FieldCount do
begin
ExcelWorksheet1.Cells.Item[row, column] := DBGrid.DataSource.DataSet.fields[i - 1].AsString;
column := column + 1;
end;
DBGrid.DataSource.DataSet.Next;
row := row + 1;
end;
end; procedure TForm1.Button4Click(Sender: TObject);
begin
ExcelApplication1.Disconnect;
ExcelApplication1.Quit;
end;end.
这怎么报错了?ole
var
eclApp,WorkBook:olevariant;
xlsFileName:string;
i,j:integer;
begin if SaveDialog1.Execute then
xlsFileName:=SaveDialog1.FileName; try
eclApp:=CreateOleObject('Excel.Application');
WorkBook:=CreateOleObject('Excel.Sheet');
except
Application.MessageBox('系统没有安装Microsoft Excel','Microsoft Excel',MB_OK+MB_ICONWarning);
Exit;
end; try
WorkBook:=eclApp.workbooks.Add;
for i:=0 to DBGrid1.Columns.Count-1 do
begin
eclApp.Cells(1,i+1):=DBGrid1.Columns[i].FieldName;
end; DBGrid1.DataSource.DataSet.First;
j:=2;
while not DBGrid1.DataSource.DataSet.Eof do
begin
for i:=0 to DBGrid1.DataSource.DataSet.FieldCount-1 do
begin
eclApp.Cells(j,i+1):=DBGrid1.DataSource.DataSet.Fields[i].Value;
end;
DBGrid1.DataSource.DataSet.Next;
inc(j);
end; WorkBook.SaveAS(xlsFileName);
WorkBook.close;
except
ShowMessage('文件导出失败!');
Exit;
end;
Application.MessageBox('保存成功!','恭喜',MB_OK + MB_ICONINFORMATION);
end;