求一段代码把stringgrid里面的内容保存为Excel文件
用 点击按钮,然后弹出SaveDialog1保存的这种形式的。求高人指点

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      eclApp, sheet: Variant;
      iCount,jCount:integer;
      FileName:string;
    begin
      try
        eclApp := CreateOleObject('Excel.Application');
      except
        ShowMessage('您的机器里未安装Microsoft Excel。');
        Exit;
      end;
      if savedialog1.Execute then
        filename:=savedialog1.FileName;  eclApp.WorkBooks.Add;
      eclApp.WorkBooks[1].WorkSheets[1].Name := 'sheet1';
      Sheet := eclApp.Workbooks[1].WorkSheets['sheet1'];
      stringgrid1.Row := 0;
      for iCount := 0 to stringgrid1.RowCount - 1 do
      begin
       for jCount := 0 to stringgrid1.ColCount - 1 do
         Sheet.cells[iCount + 1, jCount + 1] := stringgrid1.Cells[jCount,iCount];
       stringgrid1.Row := iCount;
      end;
      eclApp.ActiveWorkbook.SaveAs(FileName);
      eclApp.ActiveWorkbook.Close;
      eclApp.Quit;
      eclApp := Unassigned;
    end;
      

  2.   

    可以将StringGrid中的内容保存为csv文件,Excel可以打开这种格式的文件。
    csv文件就是以逗号分隔数据的文件,其实就是一个文本文件。
      

  3.   

    回复一楼的:
     在网上看到过类似的代码,但总是下面这句报错:
      eclApp := CreateOleObject('Excel.Application');
    为什么会这样,哪位大牛知道,告诉小弟下。。 
      

  4.   

    我机器装了excel的 啊,运行程序的时候这句都不能编译通过
      

  5.   


    你加了
    uses 
    ComObj; 
    这单元名没