数据导出Excel的简便方法(无格式要求)

利用StrList的SaveToFile方法实现导出数据到Excel,适用于无格式要求的情况
 
//实现过程
//DataSet为数据集
//Grid用来取得Excel列标题
//Filename为保存路径及文件名
procedure DatasetToExcel(Dataset:TDataset;Grid:TDBGrid;Filename:String);
var
  i:integer;
  str:String;
  StrList:TStringList;//用于存储数据的字符列表
begin
  try
    strList:=TStringList.Create;
 
    //字段
    str:='';
    for i:=0 to Dataset.FieldCount-1 do
    begin
      str:=str+Grid.Columns[i].Title.Caption +#9;
    end;
    strList.Add(str);
 
    with Dataset do
    begin
      First;//指针至表头
      DisableControls;
      while not EOF do
      begin
        str:='';
        for i:=0 to FieldCount-1 do
        begin
          str:=str+VarToStr(Dataset.Fields[i].Value)+#9;
        end;
        strList.Add(str);
        Next;
      end;
      StrList.SaveToFile(FileName);//存储路径
      EnableControls;
    end;
  finally
    StrList.free;//释放内存
  end;
end;
 
//调用方法
procedure TAccountQueryFrm.ButtonExportClick(Sender: TObject);
var
  SaveDialog:TSaveDialog;
begin
  try
    SaveDialog:=TSaveDialog.Create(self);
    SaveDialog.Filter:='*.xls';
    SaveDialog.FileName:='ExcelFileName';
    try
      if SaveDialog.Execute then
      begin
        DatasetToExcel(ClientDataSet1,DBGrid1,SaveDialog.FileName);
        Application.MessageBox(PChar('Excel表保存完毕!'),'操作提示',MB_OK+MB_ICONInformation);
      end;
    except
      Application.MessageBox(PChar('保存失败!'),'错误提示',MB_OK+MB_IconError);
    end;
  finally
    SaveDialog.Free;
  end;
end;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值