procedure TForm1.Button1Click(Sender: TObject);
var i,j:integer;begin
adoquery1.Close;
adoquery1.Open; //连接数据库,这里只演示SQL我先写进去了
// texcelapplication.Create(self); //excelapplication1
// texcelworkbook.Create(self); //excelworkbook1
//texcelapplication.Create(self); //excelworksheet1
texcelapplication.Create(self).Connect;
texcelapplication.Create(self).Workbooks.Add(null,0);
texcelworkbook.Create(self).ConnectTo(texcelapplication.Create(self).Workbooks[1]);
texcelapplication.Create(self).ConnectTo(texcelworkbook.Create(self).Sheets[1]as _worksheet);
if adoquery1.RecordCount > 0 then begin
i:= 0;
while not adoquery1.Eof
do begin
for j:=0 to adoquery1.FieldCount-1
do
begin
texcelapplication.Create(self).Cells.Item[i+1,j+1]:= adoquery1.Fields[j].AsString;
end;
i:= i+1;
adoquery1.Next;
end;
end;
texcelworkbook.Create(self).SaveCopyAs('e:\temp.xls'); //最后注意这里要把excelapplication,excelworkbook,excelworksheet
//关闭掉,怎么关?//别人给我的代码 我也调不出来
//出错信息为[Error] Unit1.pas(47): Incompatible types: '_Worksheet' and '_Application'
end;
var i,j:integer;begin
adoquery1.Close;
adoquery1.Open; //连接数据库,这里只演示SQL我先写进去了
// texcelapplication.Create(self); //excelapplication1
// texcelworkbook.Create(self); //excelworkbook1
//texcelapplication.Create(self); //excelworksheet1
texcelapplication.Create(self).Connect;
texcelapplication.Create(self).Workbooks.Add(null,0);
texcelworkbook.Create(self).ConnectTo(texcelapplication.Create(self).Workbooks[1]);
texcelapplication.Create(self).ConnectTo(texcelworkbook.Create(self).Sheets[1]as _worksheet);
if adoquery1.RecordCount > 0 then begin
i:= 0;
while not adoquery1.Eof
do begin
for j:=0 to adoquery1.FieldCount-1
do
begin
texcelapplication.Create(self).Cells.Item[i+1,j+1]:= adoquery1.Fields[j].AsString;
end;
i:= i+1;
adoquery1.Next;
end;
end;
texcelworkbook.Create(self).SaveCopyAs('e:\temp.xls'); //最后注意这里要把excelapplication,excelworkbook,excelworksheet
//关闭掉,怎么关?//别人给我的代码 我也调不出来
//出错信息为[Error] Unit1.pas(47): Incompatible types: '_Worksheet' and '_Application'
end;
// texcelapplication.Create(self); //excelapplication1
// texcelworkbook.Create(self); //excelworkbook1
//texcelworksheet.Create(self); //excelworksheet1//texcelworksheet.Create(self).ConnectTo(texcelworkbook.Create(self).Sheets[1]as _worksheet);
我还是把原代码给你吧!var i,j : integer;begin
adoquery1.Open; //连接数据库,这里只演示SQL我先写进去了
ea1 := texcelapplication.Create(self); //excelapplication1
ew1 := texcelworkbook.Create(self); //excelworkbook1
ews1 := texcelworksheet.Create(self); //excelworksheet1
ea1.Connect;
ea1.Workbooks.Add(null,0);
ew1.ConnectTo(ea1.Workbooks[1]);
ews1.ConnectTo(ew1.Sheets[1]as _worksheet);
if adoquery1.RecordCount > 0 then begin
i:= 0;
while not adoquery1.Eof
do begin
for j:=0 to adoquery1.FieldCount-1
do
begin
ews1.Cells.Item[i+1,j+1]:= adoquery1.Fields[j].AsString;
end;
i:= i+1;
adoquery1.Next;
end;
end;
ew1.SaveCopyAs('e:\temp.xls');//保存EXCEL这里你也可以自己写更多
//最后注意这里要把excelapplication,excelworkbook,excelworksheet
//关闭掉,怎么关?这个自己摸摸吧。不写的话要看到EXCEL表最好把机器注销一下
//这里只是一个示例你还可以在里面加入写表头的代码等其他功能。 end;
ea1.destroy
ew1.destroy
ews1.destroy