|  
 
 
delphi怎么把TClientDataSet中的数据直接导出到excel。 现在是数据库中有a,b,c,d.....列,现在想把TClientDataSet中查到的所有数据导出到excel中。 不要先导出到DBGRID中再导出。初学delphi 用nativeExcel,无需安装excel,也可导出(非Com形式)。 NativeExcel里面封装了一个控件,DataSet、dbgrid导Excel  以把TClientDataSet中的数据用dbgrideh显示出来,然后利用dbgrideh的功能可以保存为多种格式包括excel。 
 在窗体中添加一个SaveDialog组件和“导出”按钮B_exp,在“导出”按钮的click事件中添加如下代码: procedure TForm1.B_expClick(Sender: TObject); var   ExpClass:TDBGridEhExportClass;   Ext:String; begin   SaveDialog1.FileName := 'file1';   if (ActiveControl is TDBGridEh) then     if SaveDialog1.Execute then     begin       case SaveDialog1.FilterIndex of         1: begin ExpClass := TDBGridEhExportAsText; Ext := 'txt'; end;         2: begin ExpClass := TDBGridEhExportAsCSV; Ext := 'csv'; end;         3: begin ExpClass := TDBGridEhExportAsHTML; Ext := 'htm'; end;         4: begin ExpClass := TDBGridEhExportAsRTF; Ext := 'rtf'; end;         5: begin ExpClass := TDBGridEhExportAsXLS; Ext := 'xls'; end;       else         ExpClass := nil; Ext := '';     end;     if ExpClass <> nil then     begin       if UpperCase(Copy(SaveDialog1.FileName,Length(SaveDialog1.FileName)-2,3)) <> UpperCase(Ext) then         SaveDialog1.FileName := SaveDialog1.FileName + '.' + Ext;       SaveDBGridEhToExportFile(ExpClass,DBGridEh1,SaveDialog1.FileName,False);       //其中false为局部数据     end;   end; end;  不过你可以设置dbgrid或者dbgrideh 不可见啊,这样导出最快的,其他方式也试过,觉得都没这样方便。  
 |