DBGRID所链接的数据集可不可以直接导入成EXECL格式,而不通过OLE容器。就像DBGrid1.Columns.SaveToFile这样的命令,而且我需要将各个字段对应道EXECL的列。

解决方案 »

  1.   

    如DBGRID所链接的数据集是单一表的话可直接存为EXCEL,
    如DBGRID所链接的数据集是多表的话,要生成临时表,后存为EXCEL
      

  2.   

    procedure TForm1.N5Click(Sender: TObject);
    var
    str:string;
    filename:textfile;
    i,j,n:integer;
    p:string;
    begin
      if SaveDialog2.Execute then
      begin
      str:=SaveDialog2.FileName;
      assignfile(filename,str);
      if fileexists(str) then DeleteFile(SaveDialog1.FileName);
        try
        Screen.Cursor:=crHourGlass;
        rewrite(filename);
        p:='~';
        str:='';
        n:=0;//query字段N序号
        /////////////////
        Query1.First;
        for n:=0 to Query1.FieldCount -1  do
              begin
              str:=str+Query1.fields[n].DisplayLabel+p;
              end;
        writeln(filename,str);
            n:=0;//query字段N序号
            str:='';
        while not Query1.Eof do begin
          for n:=0 to Query1.FieldCount -1 do
            begin
              str:=str+Query1.fields[n].AsString+p;
            end;
          writeln(filename,str);
          str:='';
          Query1.Next;
          end;
       /////////////////////////////
      except
      ShowMessage('写文件时产生错误。可能是该文件已被其他程序打开,或系统错误。');
      closefile(filename);
      END;
      Screen.Cursor:=crdefault;
      Application.MessageBox('操作在没有警告的情况下正常结束!','完成',mb_ok+mb_iconinformation);
      closefile(filename);
      end;
    end;如果想不用数据集的话,把相应的数据集操作,修改成对 dbgrid的操作就行了
      

  3.   

    不通过Ole而直接存为Excel格式,这个我倒不会,不过我手上有一个DBGridExport控件的代码(支持TXT和Excel的),我看了一下,依然要靠ole连接到EXCEL.要是那位能不通过OLE就能导出到EXCEL的方法,一定要教教小弟阿.
      

  4.   

    拜托,楼上的月亮, 人家要的是EXCEL的,不是简单的TXT的,而且你的代码如果出现异常后没有Exit,那么还会提示Application.MessageBox('操作在没有警告的情况下正常结束!','完成',mb_ok+mb_iconinformation);还要再关闭一下CloseFile,不出错才怪呢.
      

  5.   

    对,我是要EXECL,
    WWWWA(aaaa)  请问如何存?