作者Bedlem (Bedlem)
看板Visual_Basic
標題[VBA ] 能呼叫 VBA 的網路程式
時間Thu Nov 1 23:09:55 2012
公司用 Java + Oracel PL/SQL 開發了很多 Web 程式給同仁用,但是在
資料輸出的部分,其實做得不太好,不是用 Oracle Discover 3.1,就是
寫 Web 的報表程式,跑出資料到 Excel 裡面後,很多地方需要再加工,
才能呈報給長官看。
為了解決報表端的問題,我和公司資訊部門的某個同事 ( 我自己不是公
司資訊部門的 ),一起在 Excel 的 VBA 環境中,開發了一套規模很大的
VBA 程式,首先它讓 user 在 Excel VBA 的 forms 中輸入一堆參數 (大
概是六組 ),然後按下一個按鈕後,VBA 程式會呼叫 Windows API,把
Oracle Discover 3.1 打開,然後打開一堆 discover files (全部有十
幾個),然後把參數丟進去跑報表,在報表輸出到 Excel 裡面,變成十
幾個 Excel 檔以後,VBA code 會把這十幾個檔案,合併到一個檔案裡
面 ( 變成一個檔案裡面,有十幾個工作表 ),然後對每個工作表,根據
公司財務部、管理部、資訊部等一堆部門同事的要求,用 VBA code 自動
整理成他們想要的格式 ( 畫各種粗細不一的格線,塗上不同顏色,合併
欄位,設定欄寬、字型、列印格式 ... 族繁不及備載 )。
因為這個 VBA 程式,是給海外子孫公司跑的 ( 大概有三四十家子孫公
司,我們公司是很大的上市公司 ),為了解決各地 PC 端環境不一的問
題,所以這支 VBA 程式,是放在台北的 PC Server 端 ( 好像是裝
Windows NT 2003 ),讓海外各辦用 Windows 的 remote desktop 機制
連回來跑這支程式。現在問題來了,管 PC Server 端的 IT 同事,認為
這個系統 (給海外子孫公司編年度預算的系統) 已經上線, 報表端應該
用傳統的 Web 報表輸出程式,或者用 Web Discover / Crystal Report
才對,不應該再用 VBA code + Windows Remote Desktop 機制跑,但報
表的使用單位,包括台北管理、財務、IT ... 等單位,又認為最後要看
的報表還是 Excel 型態的,用這種方式處理,可以做到最【客製化】,
做出最漂亮的 Excel 報表。
所以我的問題是,用 Java ( JSP、JSF ? ) + Oracle PL SQL 開發的網
路程式,是否可以直接啟動已經寫好的 VBA code,然後把產生的報表叫
回來 ? 或者說,放在網路上給有權限的人使用 ? Web Discover 或者
Oracle Crystal Report 等 BI 工具,能在 Excel 的環境中,做到 Excel
VBA 可以做到的,一切和調整格式有關的工作嗎 ? 或者更進一步問,
一般的報表使用者,有可能放棄 Excel 型態的報表嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.35.152.173
推 Marty:在Excel中的 WorkBook_Open 裡面呼叫VBA Code 11/02 08:23
→ Marty:這樣只要用外部程式Open Excel 就會自動完成所有的計算 11/02 08:25
→ Bedlem:如果要傳遞數值進去怎麼辦? 11/02 22:52
推 Marty:先把參數都寫到Excel Sheet儲存格中 再Open一次 11/03 21:24
推 Catbert:把參數都丟到一個table,再去table抓參數 11/03 23:03
→ Bedlem:Java 可以丟參數到 Excel 裡面嗎? 11/03 23:24
→ Catbert:用Java把參數丟到Oracle的一個Table中, 11/04 07:35
→ Catbert:Excel再用ADO去Oracle Table抓參數回來跑報表 11/04 07:36