搜索了网络很多资源,都无法把stringgrid上的数据导出成一个excel文件?太难了!
好多介绍说需要安装一些第三方控件。
比如FlexCel这个控件,下载资源很少,即便下载了安装后,都没有像以下图片显示的引入安装路径。更加没有图中的三个控件。论坛里还提到XLSReadWriteII 这个控件,下载了好多版本都安装不上,这个控件安装似乎很难!
这个问题一直困扰着,请有经验的帮忙一下,谢谢!

解决方案 »

  1.   

    网上很多delphi 操作excell和word的代码啊.............
    搜索"delphi 操作excel",一堆出来。
    至于读StringGrid,这个简单吧
      

  2.   

    NativeExcel
      

  3.   

    procedure Tsave.CopySGDataToExcel(Target: TStringGrid;FileName: string);
    var
    iCount, jCount: Integer;
    XLApp: Variant;
    Sheet: Variant;
    begin
    Screen.Cursor := crHourGlass;
    if not VarIsEmpty(XLApp) then
    begin
    XLApp.DisplayAlerts := False;
    XLApp.Quit;
    VarClear(XLApp);
    end;
    //通过ole创建Excel对象
    try
    XLApp := CreateOleObject('Excel.Application');
    except
    Screen.Cursor := crDefault;
    Exit;
    end;
    SaveDialog1.DefaultExt := 'xls';
    SaveDialog1.FileName := FileName;XLApp.WorkBooks.Add;    //你要把数据放在那里啊,先生成个文件在e:\1.xls
    XLApp.WorkBooks[1].WorkSheets[1].Name := 'sheet1';
    Sheet := XLApp.Workbooks[1].WorkSheets['sheet1'];
    Target.Row := 0;
    for iCount := 0 to Target.RowCount - 1 do
    begin
    for jCount := 0 to Target.ColCount - 1 do
       Sheet.cells[iCount + 1, jCount + 1] := Target.Cells[jCount,iCount];
    Target.Row := iCount;
    end;
    XLApp.ActiveWorkbook.SaveAs(FileName:=FileName);
    Screen.Cursor := crDefault;
    XLApp.ActiveWorkbook.Close;
    end;
      

  4.   

    上面这个方法刚好是stringgrid导出Excel的方法,我自己用过的。
    当然你要是用advstringgrid的话还有更简单的方法,不用语句,靠控件就能实现。
      

  5.   

    还可以直接写入 excel 数据流,参考这个:https://blog.csdn.net/void_1987/article/details/7948899
      

  6.   

    怎么使用advstringgrid呢?以上就是advstringgrid,这么把里面的数据导出成excel文件呢
      

  7.   

    论坛不能上传文件,给你个实例,程序+存储过程
    链接: https://pan.baidu.com/s/16z0LBQxuGztnLiY0e1prPg 提取码: sibz 
      

  8.   

    打开您的实例,发现好多控件都没有,也学习不了。应该只有那个按钮的 你换成Button就可以了