線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2842
推到 Plurk!
推到 Facebook!

如何才能把dbgrid中的資料匯出到EXCEL中

尚未結案
suntao008
一般會員


發表:70
回覆:38
積分:21
註冊:2003-10-19

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-03-15 19:42:06 IP:61.155.xxx.xxx 未訂閱
感謝你們對我的指教! 感謝不盡! 初出到來,還記各位高手們指教! 我現在dbgrid中的資料想匯出到EXCEL中,請你們指教! 謝謝!
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-03-15 19:54:39 IP:211.76.xxx.xxx 未訂閱
您好: 搜尋一下『dbgrid excel』 提供你一範例http://delphi.ktop.com.tw/topic.php?TOPIC_ID=19473 ~~應無所住而生其心~~
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-03-15 22:13:33 IP:218.15.xxx.xxx 未訂閱
suntao008你好: 插一个花: 这里也有 站长大大的【發表】將資料庫直接轉入EXCEL檔(不用OLE/不用ADO) http://delphi.ktop.com.tw/topic.php?TOPIC_ID=22849 你也可以自己去查找,在上面“KTOP搜寻”输入你要查找的关键字,比如‘EXCEL’你可以找到很多相关的资料,站内资源丰富得很 ——行径窄处,留一步与人行——
suntao008
一般會員


發表:70
回覆:38
積分:21
註冊:2003-10-19

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-03-16 19:39:15 IP:61.155.xxx.xxx 未訂閱
感謝兩位的指導: 不知兩位有沒有看過應用程序,如何看過就會發現: 我些我的程序中的按他們的方法運行,結果出現錯誤,可語句的錯誤,請各位大大,能否告訴我,如何去實現轉成Excel檔,謝謝!
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-03-16 19:44:00 IP:211.76.xxx.xxx 未訂閱
您好: 小弟曾試過沒問題,不知道是什ㄇ錯?提出來討論 ~~應無所住而生其心~~
suntao008
一般會員


發表:70
回覆:38
積分:21
註冊:2003-10-19

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-03-16 19:47:27 IP:61.155.xxx.xxx 未訂閱
大哥: 我在我的程序中,按你的方法設置,還會出現無法運行? 請問大哥: 請寫出轉換成EXCEL檔的語法,好嗎?謝謝! 感謝不盡!
TATSU
版主


發表:50
回覆:135
積分:62
註冊:2003-01-16

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-03-16 20:42:38 IP:203.218.xxx.xxx 未訂閱
你可以說明你出現的錯誤嗎?你又沒有說明你使用了那一個 sample ,就只說出現錯誤,你都要貼上你自己的原程式碼,好讓這裡的高手可以研究,就只有兩個字「錯誤」,我們不知從何入手喔。
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-03-16 22:03:06 IP:192.168.xxx.xxx 未訂閱
引言: 感謝兩位的指導: 不知兩位有沒有看過應用程序,如何看過就會發現: 我些我的程序中的按他們的方法運行,結果出現錯誤,可語句的錯誤,請各位大大,能否告訴我,如何去實現轉成Excel檔,謝謝!
問題最好明確一點,這樣大夥比較容易切入您的問題核心! 1.比如您的程式從哪裡下載的,網址連結? 2.採用的Delphi版本 D5 / D6 / D7 ? 3.出現的錯誤訊息畫面為何 ? 4.您的作業系統為何 ? 這樣可以讓回覆更有效率! ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
Wesly
中階會員


發表:14
回覆:103
積分:53
註冊:2002-05-31

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-03-17 11:11:52 IP:218.170.xxx.xxx 未訂閱
function TForm1.SaveToExcel(vFileName: string): Boolean; //存成Excel檔 var index, i, j: Integer; BookMark: TBookmarkStr; Excel, workbook, worksheet: variant; begin result := False; DBGrid1.DataSource.DataSet.DisableControls; try Excel := CreateOleObject('Excel.Application'); if Application.MessageBox('是否進入 Excel 編修模式?', '程式執行確認', MB_YesNo MB_DEFBUTTON1 MB_IconQuestion MB_ApplModal) = IDYES then Excel.Application.Visible := True else Excel.Application.Visible := False; workbook := Excel.WorkBooks.Add; worksheet := Excel.WorkSheets['sheet1']; try index := 1; j := 1; //寫入製表日期時間 worksheet.Cells[index, j] := '產生日期時間:'; Inc(j); Excel.WorkSheets[1].Columns[j].NumberFormatLocal := '@'; worksheet.Cells[index, j] := FormatDateTime('yyyy/mm/dd hh:mm', now); Inc(index); //記錄位置 Bookmark := DBGrid1.DataSource.DataSet.Bookmark; DBGrid1.DataSource.DataSet.First; j := 1; //標題 for i := 0 to DBGrid1.Columns.Count - 1 do if not DBGrid1.Columns[i].Field.IsBlob and //not Blob Type (DBGrid1.Columns[i].Visible) then //Is Visible begin worksheet.Cells[index, j] := DBGrid1.Columns[i].Title.Caption; //worksheet.Cells[index, j].Alignment := 'Center'; //worksheet.Cells[index, j].Range(IntToStr(index) GetX(j)).HorizontalAlignment := 'xlCenter'; //定義欄位為字串時, 靠左對齊 case DBGrid1.Columns[i].Field.DataType of ftString: Excel.WorkSheets[1].Columns[j].NumberFormatLocal := '@'; end; Inc(j); end; Inc(index); //內容 while not DBGrid1.DataSource.DataSet.Eof do begin j := 1; for i := 0 to DBGrid1.Columns.Count - 1 do if not DBGrid1.Columns[i].Field.IsBlob and //not Blob Type (DBGrid1.Columns[i].Visible) then //Is Visible begin worksheet.Cells[index, j] := DBGrid1.Columns[i].Field.DisplayText; inc(j); end; Inc(index); DBGrid1.DataSource.DataSet.next; end; //最適欄寬 j := 1; for i := 0 to DBGrid1.Columns.Count - 1 do begin if not DBGrid1.Columns[i].Field.IsBlob and //not Blob Type (DBGrid1.Columns[i].Visible) then //Is Visible begin //定義最適欄寬 Excel.WorkSheets[1].Columns[j].AutoFit; Excel.WorkSheets[1].Columns[j].ColumnWidth := Excel.WorkSheets[1].Columns[j].ColumnWidth 1; inc(j); end; end; // worksheet.SaveAs(vFileName '.xls'); beep; ShowMessage('已產生 "' vFileName '.xls' '" 檔案 "'); result := True; finally if not Excel.Application.Visible then begin Excel.WorkBooks.Close; Excel.Quit; end; DBGrid1.DataSource.DataSet.Bookmark := Bookmark; DBGrid1.DataSource.DataSet.EnableControls; end; except ShowMessage('無法啟動Excel!!'); end; end; 以上程式有幾個問題: 一。是執行該程式的那電腦必須要有Excel,否則會沒有做用。 二。是資料量多的時候,會比較慢。 三。在Delphi 5.0(含)以上才有做用。 希望對你有些幫助。 對了在必須把ComObj,Uses 進去才能使用喔。
系統時間:2024-05-14 9:42:40
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!