向excel里导数据

zhuogenanhl 2003-11-19 10:40:47
怎么把数据导入excel中有报表样式的数据文件!
...全文
23 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
txmjs 2003-11-19
  • 打赏
  • 举报
回复
procedure Trydc.suiButton2Click(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);
ADOQuery1.Open;
row:=1;
While Not(ADOQuery1.Eof) do
begin
column:=1;
for i:=1 to ADOQuery1.FieldCount do
begin
ExcelWorksheet1.Cells.Item[row,column]:=ADOQuery1.fields[i-1].AsString;
column:=column+1;
end;
ADOQuery1.Next;
row:=row+1;
end;
end;

供你参考
saien 2003-11-19
  • 打赏
  • 举报
回复
利用Excel的内置功能导入数据

type

TForm1 = class(TForm)

ADOQuery1: TADOQuery;

Button1: TButton;

procedure Button1Click(Sender: TObject);

private

FExcelBook: TExcelWorkBook;

FExcelSheet: TExcelWorkSheet;

FExcelApp: TExcelApplication;

procedure DataSetToExcel(AFileName: string);

public

constructor Create(AOwner: TComponent); override;

destructor Destroy; override;

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.DataSetToExcel(AFileName: string);

begin

try

FExcelApp.Visible[0] := False;

try

FExcelBook.ConnectTo(FExcelApp.Workbooks.Add(EmptyParam, 0));

except

raise Exception.Create('连接到Excel文件出错,可能是没有安装Excel软件');

end;

FExcelSheet.ConnectTo(FExcelBook.Worksheets[1] as _WorkSheet);

with FExcelSheet.QueryTables.Add(ADOQuery1.Recordset, FExcelSheet.Range['A3', EmptyParam], EmptyParam) do

begin

FieldNames := False;

Refresh(False);

end;

FExcelSheet.Columns.Item[3, EmptyParam].NumberFormatLocal := 'yyyy-mm-dd';

FExcelBook.SaveCopyAs(AFileName);

FExcelBook.Close(False);

finally

FExcelApp.Quit;

FExcelSheet.Disconnect;

FExcelBook.Disconnect;

FExcelApp.Disconnect;

end;

end;

{ TForm1 }

constructor TForm1.Create(AOwner: TComponent);

begin

inherited;

FExcelApp := TExcelApplication.Create(Self);

FExcelBook := TExcelWorkBook.Create(Self);

FExcelSheet := TExcelWorkSheet.Create(Self);

end;

destructor TForm1.Destroy;

begin

FExcelSheet.Free;

FExcelBook.Free;

FExcelApp.Free;

inherited;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

Caption := 'begin open';

with ADOQuery1 do

begin

if not Active then

begin

SQL.Text := 'select * from mytable';

Open;

end;

DataSetToExcel('c:.xls');

end;

end;

这是利用Excel内置的功能



xiezw 2003-11-19
  • 打赏
  • 举报
回复
同意txmjs(天地之间) 的做法,还有其他方法

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧