如何複製DBGRID的資料至excel |
答題得分者是:pedro
|
viya
一般會員 發表:16 回覆:19 積分:7 註冊:2008-09-16 發送簡訊給我 |
|||||||||||||
nihg
一般會員 發表:1 回覆:1 積分:0 註冊:2003-05-10 發送簡訊給我 |
|||||||||||||
pedro
尊榮會員 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
找了兩段的程式碼,請自行修改試驗,DBGrid.Option的dgMultiSelect要設為True
[code delphi] procedure TBrCustOrdForm.Button1Click(Sender: TObject); var i, j: Integer; s: string; begin if CustGrid.SelectedRows.Count>0 then with CustGrid.DataSource.DataSet do for i:=0 to CustGrid.SelectedRows.Count-1 do begin GotoBookmark(pointer(CustGrid.SelectedRows.Items[i])); for j := 0 to FieldCount-1 do begin if (j>0) then s:=s ', '; s:=s Fields[j].AsString; end; //Clipboard.SetTextBuf(); end; end; procedure TBrCustOrdForm.Button2Click(Sender: TObject); var A:LCID; begin Clipboard.AsText:=Pchar('測試' #9 '測試' #9 '123' #13#10 '測試'); A:=GetUserDefaultLCID(); app.Connect; app.Visible[0]:=true; // wb.ConnectTo(app.Workbooks.Open(ExtractFilePath(application.ExeName) 'A.XLS', wb.ConnectTo(app.Workbooks.Open('c:\A.XLS', EmptyParam,EmptyParam, EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam, A)); ws.ConnectTo(app.Worksheets['sheet1'] as _WorkSheet); ws.Activate(A); ws.PasteSpecial; app.Cells.Item[4,3].Value:='測試' #9 '測試中'; wb.Save(A); wb.Close; app.Quit; app.Disconnect; end; [/code] |
||||||||||||
viya
一般會員 發表:16 回覆:19 積分:7 註冊:2008-09-16 發送簡訊給我 |
利用GotoBookmark 可匯出所點選的資料。
不過礙於DBgrid本身的特性,好像只能匯出一整個row。 : ( 想做複製多個 column,如下圖。然後按照對應位置轉出到excel 不曉得是否有什麼方法可以做出來 @@a (以A3當成起始位置)
===================引 用 nihg 文 章=================== 一般都是全部汇总出 |
||||||||||||
jimmy_wei
高階會員 發表:9 回覆:176 積分:147 註冊:2003-08-28 發送簡訊給我 |
那要看你是用什麼方法,把資料寫到excle,我想這已經是很多地方都可以
找的到答要的,如果你的function是傳dataset出去,然後整個寫到excle 那你只要先把你想要匯出到excel的資料,先加工,寫到另一個dataset, 看是一筆,還是你選到的多筆,然後,再將這個你加工的dataset傳到excel 就行了,我想輸出到excel的函式你應該有~~ 拿我手頭上的這個function來說 procedure DataSet2Excel(var DS: TDataSet; var HeadString, LString, RString: TStrings; lShowTitle: Boolean); 我會把加工後的資料傳到DS這個dataset,就搞定了~~ |
||||||||||||
viya
一般會員 發表:16 回覆:19 積分:7 註冊:2008-09-16 發送簡訊給我 |
感謝perdo 熱心提供的程式碼。
感謝jimmy所提供的方法 這個方向我還沒試過,這幾天再找時間來試試看。^^ 謝謝。 ===================引 用 jimmy_wei 文 章=================== 那要看你是用什麼方法,把資料寫到excle,我想這已經是很多地方都可以 找的到答要的,如果你的function是傳dataset出去,然後整個寫到excle 那你只要先把你想要匯出到excel的資料,先加工,寫到另一個dataset, 看是一筆,還是你選到的多筆,然後,再將這個你加工的dataset傳到excel 就行了,我想輸出到excel的函式你應該有~~ 拿我手頭上的這個function來說 procedure DataSet2Excel(var DS: TDataSet; var HeadString, LString, RString: TStrings; lShowTitle: Boolean); 我會把加工後的資料傳到DS這個dataset,就搞定了~~ |
||||||||||||
viya
一般會員 發表:16 回覆:19 積分:7 註冊:2008-09-16 發送簡訊給我 |
我誤會jimmy大的意思。哈。
J大跟P大的意思,應該是一樣的,都是對資料多筆匯出。而不是欄位匯出 不好意思,我在發問的時後,並沒有說清楚。造成大家誤會了。 後來自己try,並沒有試出來。結果還是請使用者,整筆匯出 分數給 提供程式的p大,也感謝j大的說明。 ^^ ===================引 用 viya 文 章=================== 感謝perdo 熱心提供的程式碼。 感謝jimmy所提供的方法 這個方向我還沒試過,這幾天再找時間來試試看。^^ 謝謝。 ===================引 用 jimmy_wei 文 章=================== 那要看你是用什麼方法,把資料寫到excle,我想這已經是很多地方都可以 找的到答要的,如果你的function是傳dataset出去,然後整個寫到excle 那你只要先把你想要匯出到excel的資料,先加工,寫到另一個dataset, 看是一筆,還是你選到的多筆,然後,再將這個你加工的dataset傳到excel 就行了,我想輸出到excel的函式你應該有~~ 拿我手頭上的這個function來說 procedure DataSet2Excel(var DS: TDataSet; var HeadString, LString, RString: TStrings; lShowTitle: Boolean); 我會把加工後的資料傳到DS這個dataset,就搞定了~~ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |