//怎样可以提高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;
博客围绕提高Excel导出速度展开,给出了使用Delphi语言实现的代码。通过创建ADODB连接和记录集,将查询结果导入Excel数据,最后保存文件。代码中包含了对Excel应用、工作簿、工作表等对象的操作及相关属性设置。
1504

被折叠的 条评论
为什么被折叠?



