原创  Delphi中Excel的快速导入 收藏

//怎样可以提高EXCEL的导出速度?

uses ADODB,excel97,adoint;

function TForm1.ExportToExcel: Boolean;
var
  xlApp,xlBook,xlSheet,xlQuery: Variant;
  adoConnection,adoRecordset: Variant;
begin
  adoConnection := CreateOleObject('ADODB.Connection');
  adoRecordset := CreateOleObject('ADODB.Recordset');
  adoConnection.Open('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\Tree.mdb;Persist Security Info=False');
  adoRecordset.CursorLocation := adUseClient;
  adoRecordset.Open('SELECT * FROM tree',adoConnection,1,3);

  try
    xlApp := CreateOleObject('Excel.Application');
    xlBook := xlApp.Workbooks.Add;
    xlSheet := xlBook.Worksheets['sheet1'];
    xlApp.Visible := True;

    //把查询结果导入EXCEL数据
    xlQuery := xlSheet.QueryTables.Add(adoRecordset,xlSheet.Range['A1']); 
//关键是这一句
    xlQuery.FieldNames := True;
    xlQuery.RowNumbers := False;
    xlQuery.FillAdjacentFormulas := False;
    xlQuery.PreserveFormatting := True;
    xlQuery.RefreshOnFileOpen := False;
    xlQuery.BackgroundQuery := True;
    //xlQuery.RefreshStyle := xlInsertDeleteCells;
    xlQuery.SavePassword := True;
    xlQuery.SaveData := True;
    xlQuery.AdjustColumnWidth := True;
    xlQuery.RefreshPeriod := 0;
    xlQuery.PreserveColumnInfo := True;
    xlQuery.FieldNames := True;
    xlQuery.Refresh;

    xlBook.SaveAs('d:\fromD.xls',xlNormal,'','',False,False);

  finally
    if not VarIsEmpty(XLApp) then begin
      XLApp.displayAlerts:=false;
      XLApp.ScreenUpdating:=true;
      XLApp.quit;
    end;
  end;
end;

发表于 @ 2004年09月08日 16:37:00 | 评论( loading... ) | 编辑| 举报| 收藏

旧一篇:Delphi与Excel | 新一篇:Delphi_Excel例子:单元格拷贝粘贴

  • 发表评论
  • 评论内容:
  •  
Copyright © TianGuanLeiOK
Powered by CSDN Blog