注册 登录
编程论坛 Delphi论坛

EXCEL导入导出的问题

yalongjava 发布于 2010-08-22 23:40, 1282 次点击
适用EXCEl导出只能一条一条写EXCEL么?好慢,怎么快?
3 回复
#2
ztd_Seanfly2010-08-30 13:08
试下用这个:

use DBGridEhImpExp;
procedure TForm1.DBGridEh1DblClick(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 := TDBGridEhExportAsText; Ext := 'csv'; end;
        3: begin ExpClass := TDBGridEhExportAsText; Ext := 'htm'; end;
        4: begin ExpClass := TDBGridEhExportAsText; Ext := 'rtf'; end;
        5: begin ExpClass := TDBGridEhExportAsText; 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,TDBGridEh(ActiveControl),SaveDialog1.FileName,True);
      end;
    end;

end;
#3
Nilker2010-09-25 09:28
如果你没有用第三方控件的话,你就只能一行一行,一列一列的循环来写入Excel了,如果用第三方控件的话,就比较容易了,一般都支持直接保存的(SaveToFile(XX.xls)),就导到EXCEL中了
#4
niatzhu2010-10-12 22:24
其实通过delphi的ado控件也是可以的
1