下面代码是将QuickReport要打印的数据导出到Excel文件(写作风格不太好^-^),在Excel排版报表不难吧!
var
I: Integer;
Str,pfilename: String;
StrList: TStringList;//用于存储数据的字符列表
begin
if query1.Active then
//如果有数据集打开则可导出,否则报错
begin
if savedialog1.Execute then
//此部分主要是要确定文件名
begin
if strpos(pchar(savedialog1.FileName),pchar('.xls'),)<>nil then
pfilename:=savedialog1.FileName
else
pfilename:=savedialog1.FileName+'.xls';
StrList := TStringList.Create;//创建字符列表
strlist.Add('物品名称'+#9+'型号规格'+#9+'单位'+#9+'单价'+#9+'数量'+#9+'金额'+#9+'批号'+#9+'产地'+#9+'供货公司'+#9+'发票号'+#9+'材料类别'+#9+'发票日期'+#9+'入库日期'+#9+'制单人'+#9+'拼音编码'+#9);//Excel表头(这个部分要看你自己的咯)
try
with query1do
begin
First;
while not Eofdo
begin
Str:='';
for I := 0 to FieldCount-1do
Str:= Str+Fields.AsString+#9;
//关键是在这儿
StrList.Add(Str);
Next;
end;
try
StrList.SaveToFile(pfilename);
except
application.MessageBox('您指定的文件正被其他程序所使用或含有非法字符,请结束其使用或重新输入文件名!','错误',mb_ok+mb_iconstop);
end;
end;
StrList.Free;
except
StrList.Free;
end;
end;
end
else
application.MessageBox('数据集未打开,无法导出文件!','错误',mb_ok+mb_iconwarning);
end;