請問:如何將多個Query抓出的資料,存成Excel檔 |
尚未結案
|
gaui
一般會員 發表:25 回覆:36 積分:12 註冊:2004-06-11 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
gaui
一般會員 發表:25 回覆:36 積分:12 註冊:2004-06-11 發送簡訊給我 |
Query.Active := true;.
Query.First;
M := TStringList.Create;
Line := Query.Fields[0].DisplayName;
For i := 1 to Query.FieldCount -1 do
Line := Line ',' Query.Fields[i].DisplayLabel;
M.Add(Line);
while not Query.Eof do
begin
Line := Query.Fields[0].AsString;
For i := 1 to Query.FieldCount -1 do
Line := Line ',' StringReplace(StringReplace (Query.Fields[i].AsString,
#13#10,' ',[rfReplaceAll]),#9,' ',[rfReplaceAll]);
M.Add(Line);
Query.Next;
以上是我原本將Query匯成csv檔的做法,不過只能匯入一個Query的資料,
下一個Query的資料就會把前一個Query的資料給蓋過,不知道有沒有方法可以改善?
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
begin Query.Active := true;. Query.First; M := TStringList.Create; // 這裡加一行試試 M.LoadFromFile('之前的 csv 檔案'); Line := Query.Fields[0].DisplayName; For i := 1 to Query.FieldCount -1 do Line := Line ',' Query.Fields[i].DisplayLabel; M.Add(Line); while not Query.Eof do begin Line := Query.Fields[0].AsString; For i := 1 to Query.FieldCount -1 do Line := Line ',' StringReplace(StringReplace (Query.Fields[i].AsString, #13#10,' ',[rfReplaceAll]),#9,' ',[rfReplaceAll]); M.Add(Line); Query.Next; // .. end; |
gaui
一般會員 發表:25 回覆:36 積分:12 註冊:2004-06-11 發送簡訊給我 |
|
gaui
一般會員 發表:25 回覆:36 積分:12 註冊:2004-06-11 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
gaui
一般會員 發表:25 回覆:36 積分:12 註冊:2004-06-11 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
底下的例子是以逗號隔開, 若要以 tab 字元隔開, 則將逗號改成 #9
var i: integer; Line: string; sl: TStringList; begin Query.Active := true;. Query.First; sl := TStringList.Create; try if FileExists('C:\xx.csv') then // 先前存好的 csv 檔存在便載入 sl.LoadFromFile('C:\xx.csv') else begin // 先前的 csv 檔不存在, 則儲存檔頭 Line := Query.Fields[0].DisplayName; For i := 1 to Query.FieldCount -1 do Line := Line ',' Query.Fields[i].DisplayLabel; sl.Add(Line); end; while not Query.Eof do begin Line := Query.Fields[0].AsString; For i := 1 to Query.FieldCount -1 do Line := Line ',' Query.Fields[i].AsString; sl.Add(Line); Query.Next; end; finally sl.Free; end; end; |
gaui
一般會員 發表:25 回覆:36 積分:12 註冊:2004-06-11 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |