一个古老的FOX 的DBF表格,用BDE连接。现在想导出某歌字段生成EXCELB表格,不知道如何处理,帮帮忙,感激涕淋

解决方案 »

  1.   

    这是我的一个ado的button press事件导出excel表,  你改一下就可以了:
    uses comobj;procedure Twdbx.Button5Click(Sender: TObject);
    var
      e:variant;
      i,j:integer;
    begin
      e:=createoleobject('excel.application');
      e.visible:=true;
      e.caption:='网断';
      e.workbooks.add;   e.activesheet.rows[1].font.bold:=true;   //第一行列名属性设置;
       e.activesheet.rows[1].font.color:=clred;
       for j:=0 to data.wdbxb.FieldCount-2 do   //第一行列名;
       begin
       e.cells[1,j+1].value:=data.wdbxb.Fields[j].FieldName ;
       next;
       end;   data.wdbxb.first;                         //导出内容;
       for i:=1 to data.wdbxb.recordcount do
        begin
          begin
           for j:=0 to data.wdbxb.FieldCount-2 do //-2 代表把back列放弃;
           begin
            e.cells[i+2,j+1].value:=data.wdbxb.Fields[j].AsString ;
           next;
           end;
          end;
          data.wdbxb.next;
          next;
        end;
         ShowMessage('数据导出成功');
         e.workbooks.close;
         e.quit;
    end;
      

  2.   

    方法1:通过ole调用,就如(自古英雄出我辈, 一入江湖岁月催!) 的方法一样,缺点是遇到大量数据时(>800)要死机、速度慢。方法2:使用DBGrideh,通过EHLIB提供的接口调用,速度奇快。该控件可以在www.playicq.com下载。  在uses子句中添加 DBGridEhImpExp 单元,procdure form1.Exporttoxls;
    var filename:string;
        ff:TDBGridEhExportAsXLS;   //声明一个导出到XLS的类。
    begin
    if savedialog1.Execute then begin
      filename:=sdlg.FileName ;
      if filename='' then exit;
      try
        ff:=TDBGridEhExportAsXLS.create;  //建立类的实例
        ff.DBGridEh :=dbgrid1;            //显示你的记录集的DBGrideh
        filename:=filename+'.xls';
        ff.ExportToFile(filename,true);   //导出到XLS文件
      finally
        ff.Free ;                      //释放所占用的Mem.
      end;
    end;
    end;
      

  3.   

    数据转换成EXCEL表格,如果你是初学者,最好看看实例,效果比看代码要好得多。这样的演示例子有很多,GOOGLE里面搜索一下,或者去www.playicq.com去找找吧。如果你实在找不到,发封邮件给我,我发给你。不过时间可能要2天内吧。我的油箱地址:
    [email protected]