全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2287
推到 Plurk!
推到 Facebook!

用excel作報表系統

尚未結案
seagal2222
一般會員


發表:24
回覆:48
積分:14
註冊:2003-03-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-26 08:04:08 IP:202.97.xxx.xxx 未訂閱
我們要給客戶開發數據庫系統(delphi6 oracle8i).客戶要求報表都轉到excel.於是我們考慮直接用excel作報表系統.但有幾個技術問題:1 如何將涉及好excel的報表格式存入數據庫,客戶可以下載到本地,避免進行繁雜的excel報表格式設計.2 系統給用戶提供接口,用戶可控制本地下載那個報表(自動啓動本地excel).3 系統中提供報表與數據的接口.就是説:報表格式與數據都從數據庫得到.各位高手有什麽想法?歡迎指正.
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-27 09:07:17 IP:210.243.xxx.xxx 未訂閱
>>1 如何將涉及好excel的報表格式存入數據庫,客戶可以下載到本地,避免進行繁雜的excel報表格式設計. 如果非要存在database不可,在開始設計excel的報表格式時,錄製巨集(macros)到設計完成,將這個macros存入database,需要使用的時候,動態產生一個excel的worksheet,從delphi操控excel物件執行這個巨集. >>2 系統給用戶提供接口,用戶可控制本地下載那個報表(自動啓動本地excel). 如果第一點可以用上述方法完成,這個問題就已經解決了,因為報表格式-->用macros建立worksheet已存入database了. >>3 系統中提供報表與數據的接口.就是説:報表格式與數據都從數據庫得到. 這..好像也是同樣的問題,如果第一點可以用紀錄macros的方式解決,就迎刃而解了. P.S. 1.excel錄製macros的內容就是vba的程式碼. 2.你用的這個方式很不錯喔,還沒看過有人這樣用過,excel也可以定義報表格式跟delphi結合使用. 3.加油.
seagal2222
一般會員


發表:24
回覆:48
積分:14
註冊:2003-03-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-03-28 10:13:12 IP:202.97.xxx.xxx 未訂閱
感謝hahalin。 把excel存入database,是爲了加速建表的過程,如果取得marco,在delphi中執行,速度還是較慢,不理想。 假設不存入database,直接在代碼中設計,也存在葉面設置的一些問題,這就影響了速度。不知有和高見。 可不可以用二進制直接存入,這個我就不太清楚了。
seagal2222
一般會員


發表:24
回覆:48
積分:14
註冊:2003-03-04

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-03-29 19:42:04 IP:61.138.xxx.xxx 未訂閱
數據庫内存入excel的格式數據,沒有嘗試過,不知各位高手是否解決過類似問題,通常數據庫内存入的都是某些類型的變量,特殊的東西部不知如何存儲。
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-03-29 21:32:14 IP:218.16.xxx.xxx 未訂閱
看看我剛發表這個 在數據庫 存取/即時修改/開啟/列印 OLE 物件 實作示範 合不合用。 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=27787
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-03-30 09:26:02 IP:203.203.xxx.xxx 未訂閱
引言: 感謝hahalin。 把excel存入database,是爲了加速建表的過程,如果取得marco,在delphi中執行,速度還是較慢,不理想。 假設不存入database,直接在代碼中設計,也存在葉面設置的一些問題,這就影響了速度。不知有和高見。 可不可以用二進制直接存入,這個我就不太清楚了。
有個不怎麼高明的手法 不過 可以勉強克服速度的問題. 若是在client server的架構下,把一個個的excel樣板檔案存在server的共用資料夾內,資料庫紀錄的是這個檔案的路徑以及檔名. 參考看看,database base的方式會有速度的問題,那就file base吧.
seagal2222
一般會員


發表:24
回覆:48
積分:14
註冊:2003-03-04

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-03-31 14:13:01 IP:202.97.xxx.xxx 未訂閱
感謝justmade,hahalin.我準備研究一下justmade方法.hahalin 能説得更詳細一點嗎,有無參考可供看看
seagal2222
一般會員


發表:24
回覆:48
積分:14
註冊:2003-03-04

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-03-31 15:18:22 IP:202.97.xxx.xxx 未訂閱
:justmade 你的方法很簡潔,我準備在三層結構上試一試。另外我有個問題:怎樣把表結構和數據聯係起來呢?通長的聯係方法是:用ole或server控件,在你的代碼中怎樣聯係呢?
seagal2222
一般會員


發表:24
回覆:48
積分:14
註冊:2003-03-04

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-04-02 14:28:14 IP:202.97.xxx.xxx 未訂閱
to JustMade: 如在代碼中製作表格式,通常都得創建excel(varient 或server控件),從數據庫中導出的excel表怎樣得到excel(varient)或ExcelWorkSheet呢.如果得不到他們怎樣將數據裝入excel.非常感謝!
seagal2222
一般會員


發表:24
回覆:48
積分:14
註冊:2003-03-04

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-04-07 16:40:10 IP:202.97.xxx.xxx 未訂閱
看來這個問題比較棘手,請各位高手多多發表意見。 我的問題在於:從數據庫讀出excel格式,並生成excel表。然後是填充數據,填充數據前需要得到sheet1.range['', ''],怎樣才能得到這個sheet1呢,在哪裏創建他呢?
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-04-07 19:57:37 IP:218.16.xxx.xxx 未訂閱
對不失我沒看到你之前的提問,不過即是看到也沒甚麼用,因為我從沒使用 OLE Automation 去操控 EXCEL。我的範例只是表達甚樣在數據庫存取的部份。先存進檔案再以OLE Automation 控制 Excel 去開啟不行嗎? 其實應可存進 Memory Stream 然後直接處理但我不懂這方便的操作。 順帶一提,若你使用 TClientDataSet 應用 TClientBlobStream 取伐 TBlogStream,可以直接存進檔案不用開多個 FileStream。
系統時間:2024-05-03 14:59:21
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!