把數據庫資料導入到excel中速度的優化 |
答題得分者是:cashxin2002
|
zch2002115
一般會員 發表:24 回覆:15 積分:7 註冊:2004-11-23 發送簡訊給我 |
請教各位高手: 我現在要把數據庫中的資料導入到excel中,速度非常慢。請教有什麼方法能快些,謝謝,下面是我的代碼
[code\] WITH Q3 DO
BEGIN
CLOSE;
SQL.Text:='SELECT isnull(PP01,'''') as pp01,isnull(PP02,'''') as pp02,isnull(PP03,'''') as pp03,isnull(PP04,'''') as pp04,isnull(PP05,'''')as pp05,';
SQL.Text:=SQL.Text 'isnull(PP06,'''') as pp06,isnull(PP07,'''') as pp07,SUM(ISNULL(PCS1,'''')) AS PCS1,SUM(ISNULL(PCS2,''''))AS PCS2,SUM(ISNULL(PCS3,''''))AS PCS3,';
SQL.Text:=SQL.Text 'SUM(ISNULL(PCS4,''''))AS PCS4,SUM(ISNULL(PCS5,''''))AS PCS5,SUM(ISNULL(PCS6,''''))AS PCS6,SUM(ISNULL(PCS7,''''))AS PCS7,SUM(ISNULL(PCS8,''''))AS PCS8,';
SQL.Text:=SQL.Text 'SUM(ISNULL(PCS9,''''))AS PCS9,SUM(ISNULL(PCS10,''''))AS PCS10,SUM(ISNULL(PCS11,''''))AS PCS11,SUM(ISNULL(PCS12,''''))AS PCS12 FROM ##K_PP4 ';
SQL.Text:=SQL.Text 'GROUP BY isnull(PP01,''''),isnull(PP02,''''),isnull(PP03,''''),isnull(PP04,''''),isnull(PP05,''''),isnull(PP06,''''),isnull(PP07,'''') ORDER BY PP02 DESC,pp03';
open;
IF RECORDCOUNT>0 THEN
BEGIN
xlapp:=createoleobject('excel.application');
xlapp.workbooks.open('d:\CPC-2005.xls',,true);
SHEET:=XLAPP.WORKBOOKS[1].WORKSHEETS[1];
SHEET.CELLS.ITEM[5,2]:=COPY(TODAY,3,2) '/' COPY(TODAY,5,2) '/' COPY(TODAY,1,2);
I:=7;
XLAPP.VISIBLE:=TRUE;
WHILE NOT EOF DO
BEGIN
SHEET.CELLS.ITEM[I,1]:=FIELDBYNAME('PP02').AsString;
SHEET.CELLS.ITEM[I,2]:=FIELDBYNAME('PP01').AsString;
SHEET.CELLS.ITEM[I,3]:=FIELDBYNAME('PP03').AsString;
SHEET.CELLS.ITEM[I,4]:=FIELDBYNAME('PP04').AsString;
SHEET.CELLS.ITEM[I,5]:=FIELDBYNAME('PP05').AsString;
SHEET.CELLS.ITEM[I,6]:=FIELDBYNAME('PP06').AsString;
SHEET.CELLS.ITEM[I,7]:=FIELDBYNAME('PP07').AsString;
SHEET.CELLS.ITEM[I,8]:=FIELDBYNAME('PCS1').AsString;
SHEET.CELLS.ITEM[I,9]:=FIELDBYNAME('PCS2').AsString;
SHEET.CELLS.ITEM[I,10]:=FIELDBYNAME('PCS3').AsString;
SHEET.CELLS.ITEM[I,11]:=FIELDBYNAME('PCS4').AsString;
SHEET.CELLS.ITEM[I,12]:=FIELDBYNAME('PCS5').AsString;
SHEET.CELLS.ITEM[I,13]:=FIELDBYNAME('PCS6').AsString;
SHEET.CELLS.ITEM[I,14]:=FIELDBYNAME('PCS7').AsString;
SHEET.CELLS.ITEM[I,15]:=FIELDBYNAME('PCS8').AsString;
SHEET.CELLS.ITEM[I,16]:=FIELDBYNAME('PCS9').AsString;
SHEET.CELLS.ITEM[I,17]:=FIELDBYNAME('PCS10').AsString;
SHEET.CELLS.ITEM[I,18]:=FIELDBYNAME('PCS11').AsString;
SHEET.CELLS.ITEM[I,19]:=FIELDBYNAME('PCS12').AsString;
SHEET.CELLS.ITEM[I,20]:='=SUM(H' INTTOSTR(I) ':S' INTTOSTR(I) ')';
INC(I);
NEXT;
END;
END;
END;[\code]
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
|
zch2002115
一般會員 發表:24 回覆:15 積分:7 註冊:2004-11-23 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗
begin ADOQuery1.Close; ADOQuery1.SQL.Text := 'Select * Into [Sheet1] ' + 'In "D:\Test.xls" "Excel 8.0;" From 資料表'; ADOQuery1.ExecSQL; end;從語法上來看應該是沒有問題﹐您目前的MDAC是什么版本﹐用如下的方法查查看﹐如果是舊版本﹐更新成MDAC2.8試試﹕ 在Form中加入一個ADOConnection元件﹒ begin ShowMessage(ADOConnection1.Version); end;================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟 |
zch2002115
一般會員 發表:24 回覆:15 積分:7 註冊:2004-11-23 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ MDAC 2.8英文版下載﹕
http://www.microsoft.com/downloads/details.aspx?familyid=6C050FE3-C795-4B7D-B037-185D0506396C&displaylang=en MDAC 2.8中文繁體版下載﹕
http://download.microsoft.com/download/9/8/4/9847e2f1-d076-49cc-be94-e376364a0292/MDAC_TYP.EXE 如果要中文簡體版的﹐請至Microsoft中國網站下載中心下載 下載完成后直接執行安裝程式即可﹒ 另請注意一些MDAC 2.8的說明﹐因為2.8版本並不包含 Microsoft Jet、Microsoft Jet OLE DB Provider、Desktop Database Drivers ODBC Driver 或 Visual FoxPro ODBC Driver﹐在需要使用的時候這些Provider或Driver的時候要另外下載安裝﹒ =================================
有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗
================================
------
忻晟 |
zch2002115
一般會員 發表:24 回覆:15 積分:7 註冊:2004-11-23 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |