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

请问如何把dbgrid中的内容生成excel文件?

缺席
jtp
初階會員


發表:39
回覆:81
積分:29
註冊:2003-04-20

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-26 10:23:44 IP:218.18.xxx.xxx 未訂閱
请问如何把dbgrid中的内容生成excel文件?然后还要在excel中加上标题,设定好格式
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-26 10:52:11 IP:202.39.xxx.xxx 未訂閱
http://www.swissdelphicenter.ch/en/showcode.php?id=1427 http://www.delphi3000.com/articles/article_2292.asp --- --<-<-<@
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-07-26 10:54:20 IP:63.84.xxx.xxx 未訂閱
您好﹒    資料庫中的資料外轉為Excel格式的檔案﹐利用DBGrid元件來轉﹐小弟還不會﹐也不知道是不是有這個功能﹐一般來講﹐都是利用資料集元件來進行外轉﹒比如說利用ADOQuery元件來做此動作﹐可下SQL如下﹕    ADOQuery1.SQL.Text := 'Select * Into [訂單]' 'In "D:\訂單.xls" "Excel 8.0;" From 訂單'; //紅色處為檔案生成后在Excel中的Sheet名稱﹐也可以說是對應一個資料表﹒ //'D:\訂單.xls'代表路徑和檔案名稱﹒ //'Excel 8.0'為檔案格式 ADOQuery1.ExecSQL; //執行生成Excel檔案﹒ 試試看吧﹗ 努力,相信會獲得美麗! 忻晟 發表人 - cashxin2002 於 2003/07/26 10:59:44 發表人 - cashxin2002 於 2003/07/28 10:28:40
------
忻晟
jtp
初階會員


發表:39
回覆:81
積分:29
註冊:2003-04-20

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-07-28 10:50:18 IP:218.18.xxx.xxx 未訂閱
我这有一段代码,忘记是哪位前辈写的了,但运行出错,提示如下: Access violation at address 004D82C6 in module "main.exe" .Read of address 00000058.请问何故? 代码如下: procedure DBGrid9Excel(DBGrid:TDBGrid;ExcelFileName:string); var MyExcel:Variant; x,y:integer; begin deletefile(ExcelFileName); MyExcel := CreateOleOBject('Excel.Application'); MyExcel.WorkBooks.Add; MyExcel.Visible := True; MyExcel.WorkBooks[1].Saveas(ExcelFileName); dbgrid.DataSource.DataSet.First; y:=1; for x:=1 to dbgrid.FieldCount do begin MyExcel.WorkBooks[1].WorkSheets[1].Cells[y,x]:=dbgrid.Fields[x-1].DisplayName; MyExcel.WorkBooks[1].WorkSheets[1].Cells[y,x].Select; MyExcel.Selection.Font.Bold:=true; MyExcel.WorkBooks[1].WorkSheets[1].Columns[x].ColumnWidth := dbgrid.Fields[x-1].DisplayWidth; end; inc(y); while not dbgrid.DataSource.DataSet.eof do begin for x:=1 to dbgrid.FieldCount do begin MyExcel.WorkBooks[1].WorkSheets[1].Cells[y,x] := dbgrid.Fields[x-1].AsString; end; inc(y); dbgrid.DataSource.DataSet.next; end; end;
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-07-28 11:16:50 IP:63.84.xxx.xxx 未訂閱
這一段Code是利用OLE機制來進行Excel檔的轉換﹒ 剛才去找了一下﹐看到Justmade版主有這樣一篇發表﹐有關于DataSet 儲存成 txt/csv/xls 簡單程序 ﹐希望對您有用﹒ http://delphi.ktop.com.tw/topic.php?TOPIC_ID=27241 努力,相信會獲得美麗! 忻晟 發表人 - cashxin2002 於 2003/07/28 11:27:02
------
忻晟
jtp
初階會員


發表:39
回覆:81
積分:29
註冊:2003-04-20

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-07-28 11:36:26 IP:218.18.xxx.xxx 未訂閱
呵。。对这段代码我有两个提问 1. 为什么我的dbgrid中有一个字段里的记录全部为空的话,那么这代码运行就会出错,请问该如何解决这个问题? 2. 如何在程序代码中加入export到excel中的文稿件标题,及栏位加总? 还请指教!
jtp
初階會員


發表:39
回覆:81
積分:29
註冊:2003-04-20

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-07-29 14:39:45 IP:218.18.xxx.xxx 未訂閱
哎。。怎么没人回答我啊,痛苦ing
Rain
資深會員


發表:31
回覆:236
積分:268
註冊:2003-02-17

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-07-29 15:17:09 IP:218.5.xxx.xxx 未訂閱
DBGrid導Excel的代碼找一下應該很多,這邊也有一個:TDBGridExport http://www.delphibbs.com/delphibbs/dispq.asp?lid=737517 還有一個選擇就是使用第三方元件dxDBGrid(cxDBGrid),就是大名鼎鼎的 QuantumGrid,裏邊已經實現好了導出至Excel的功能(dxDBGrid中有這個過程可調用,cxDBGrid把它單獨在一個單元),不管是標題,欄位加總,都可以的,導Excel估計沒有比它裏邊實現更完全的代碼了。
margaret07
一般會員


發表:14
回覆:12
積分:5
註冊:2004-10-10

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-10-22 11:09:40 IP:218.58.xxx.xxx 未訂閱
你看看这样就可以: with SaveDialog1 do begin FileName:=formatdatetime('yyyymmddhhnn',now); if Execute then begin if Pos('.xls',FileName)<=0 then FileName:=FileName '.xls'; if FileExists(FileName) then begin if MessageDlg('文件已经存在,是否覆盖?', mtConfirmation, [mbYes, mbNo], 0) <> mrYes then exit; end; dxDBGrid1.SaveToXLS(SaveDialog1.FileName,true); //导出EXCEL 表 end; end;
系統時間:2024-11-24 17:59:29
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!