【Delphi】将TStringGrid控件中的数据按照所选路径保存成Excel文件

前两篇研究了一下TStringGrid控件在连接数据库后,数据的填充。还有TStringGrid中的填充数据复制到剪贴板,再通过剪贴板粘贴到其它地方。现在,再来研究一下,如何把当前TStringGrid控件中的数据整表保存成Excel文件,并将Excel文件保存到所选路径。...
摘要由CSDN通过智能技术生成

前两篇研究了一下在连接数据库后,TStringGrid控件数据的填充。还有将TStringGrid的填充数据复制到剪贴板,再通过剪贴板把数据粘贴到其它地方。
现在,再来研究一下,如何把当前TStringGrid控件中的数据整表,按照所选路径保存成Excel文件。



一、环境

Windows10
RAD Studio 10 Seattle
SQL Server 2014 Management Studio



二、相关控件

还是继续用之前两篇创建的窗体展开,添加一个Button2按钮(用作导出的触发)和一个SaveDialog1(文件导出路径的选择)
在这里插入图片描述



三、创建生成Excel的调用过程StringGridToExcel

可以概括为三个步骤:创建Excel文件——数据填充到excel——Excel保存


1、用Excel本身的文件命名、选径保存

//StringGridToExcel的过程,像这种公共的、会多处使用到的方法,可以将它们写到一起去,哪个窗体要用的话在uses处添加引用
//记得要在窗体头部相应地生成procedure StringGridToExcel(StringGrid1: TStringGrid);
procedure TForm1.StringGridToExcel(StringGrid1: TStringGrid); // 传参参数为TStringGrid,既显示到StringGrid1的数据集
var
  i, j: integer;
  filename: string;
  excel: OleVariant;
  savedialog: tsavedialog;
begin

  screen.Cursor := crHourGlass;  //使鼠标指针形状为沙漏状。(可以用此表示程序正在执行中)

  try
    excel := CreateOleObject('Excel.Application'); //需要引用ComObj,才能使用OLE创建Excel文件
    excel.workbooks.add;                //创建一个工作簿
  except
    screen.cursor := crDefault;         //使鼠标指针恢复成箭头状态
    showmessage('无法调用Excel!');
    exit;
  end;


  //将StringGrid1中的数据循环填充到excel
  ///就和之前的StringGrid填充数据集是一致的,只不过把数据来源ADOQuery1换成StringGrid1,StringGrid1.Cells换成了excel.Cells
  for i := 0 to StringGrid1.RowCount - 1 do
  begin
    for j := 0 to StringGrid1.ColCount - 1 do
    begin
      excel.Cells[i + 1, j + 1] := StringGrid1.Cells[j, i];
    end;
  end;


  try
    //将 excel的工作簿按路径(filename)保存
    excel.ActiveWorkbook.SaveAs(filename)
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值