2012-02-06 49 views
0

我正面臨着一些在90年代爲某些財務計算書寫的Excel表單的巨大挑戰。基本上有大約100個不同的Excel表格(不同的結構,內容,公式,宏等),這需要集成到一個單一的應用程序,從而退役所有這些擅長。Excel作爲數據源?

一些excel工作表的特徵:

  • 每個練成片具有一些定義的與它相關聯的公式和宏張數。這些宏是用VBA編寫的,並且以XLL的形式使用了大量的插件。

  • 每個Excel表格還有一些用戶定義的工作表,它們依賴於用戶輸入數據和預定義表格來計算儀器的價格。最重要的是用戶將數據輸入到用戶創建的工作表,在預先定義的工作表中引用。預定義工作表基於此計算某些內容,並在用戶定義的工作表中再次引用結果。

我們正在考慮的各種方法如下decommision這樣的:

  • 與2010年的Sharepoint使用Excel服務,暴露Excel工作表作爲Web服務和編寫客戶端應用程序,它會做的用戶定義的部分,然後與用於結果Excel服務通信。(它也將具有寫入在Excel服務託管的所述預定表)

  • 使用Excel自動化(??)

我給你的問題是什麼是最好的可行途徑這裏退役那些過人之處?我。所有要做的就是寫入Excel單元格,讓公式/宏在那裏打球的一部分來計算結果,得到支持結果。我們也非常熱衷於不重新創建整個excel設置,即重新創建公式/插件,而是將它們合併。

任何意見將不勝感激!

乾杯, -Mike

+0

Sharepoint上的Excel Services將是最「有利於職業生涯」的方法。有這種經驗的程序員有很多工作可用。 – jfrankcarr 2012-02-06 16:37:56

+0

VBA函數不會在服務器上運行,所以您需要首先轉換所有這些函數。在我看來,Excel Services服務的致命弱點就在於此。 – 2012-02-06 16:42:19

+0

@Paul:我們該怎麼做?有很多代碼作爲VBA代碼進入了Excel表格,有沒有更簡單的方法將它們轉換成某種東西並使用它? – Mike 2012-02-06 17:00:46

回答

1

如果我們忽略特定技術,有三個基本的選擇,雖然組合:

  1. 保留現有的Excel工作簿中的背景,並提供一個新的前端。
  2. 將VBA遷移到某個新工具。
  3. 識別你的用戶,他們今天和明天需要的功能並實現它。

如果選項1沒有給您提供最便宜和最快速的整合,我會感到驚訝。缺點是您仍然依賴於那些舊的Excel工作簿。它們是基於早期版本的Excel還是已經遷移?如果不是,他們是否使用最新的硬件和操作系統?他們會使用明天的硬件和操作系統嗎? Microsoft爲保持向後兼容性付出了巨大的努力,但這並不意味着它們實現了100%的向後兼容性,也未表示它們將來可以或將保持向後兼容性。

選項2是否可行?你知道每個練習冊的作用嗎? VBA可以遷移/轉換爲新工具,但是加載項如何?你有源嗎?你有文檔嗎?依賴文檔的麻煩在於一些錯誤成爲人們使用的無證的功能。

隨着選項3,你不必擔心帶來任何前進。您爲今天和明天選擇正確的工具,並使用它來實現您所需的功能。你必須小心一點。如果你問用戶他們是否需要設施X,他們會說不管。要問的問題是:您使用設施X的目的是什麼?

這些選項都有風險嗎?你有沒有獲取風險的信息?您能否計算與這些選項相關的工作和風險?只有當你能夠,你才能夠選擇一種方法,然後選擇一種技術。

+0

謝謝Tony.I想到Option 1,但問題在於,excel是一個你不能保留在後臺的工具,讓用戶在新界面上運行。每次你對excel進行修改時,它都會一直提示你保存。或者我錯過了一些東西,有沒有辦法讓excel工作簿保持在後臺,讓用戶玩一個全新的視覺效果並修改excel工作簿,並從中讀取值? – Mike 2012-02-07 11:29:21

+0

本機Excel專爲直接用戶控制而設計。許多VBA是爲了增強用戶體驗而編寫的,並假設用戶在那裏回答問題。但是VBA不一定要這樣寫。例如,除非被告知不要,'Workbook.Close'會詢問用戶是否保存工作簿。但是VBA可以在關閉之前保存工作簿。或'Workbook.Close'具有參數:「不保存」或「不詢問保存」。這將涉及到更新VBA以消除Excel提出用戶問題的情況。 _繼續下一評論。_ – 2012-02-07 14:03:45

+0

另一種方法是攔截問題並自行回答問題或以非Excel方式詢問用戶的前端。你知道在這些方法之間做出選擇嗎?我希望我不公平,但給人的印象是,你希望在確定問題的範圍和大小之前選擇方法和技術。 – 2012-02-07 14:04:16

1

我不熟悉與SharePoint,所以無法比較,但與Excel自動化真的是可以打開一個表,輸入一些值存在並讀取結果。它甚至可以在視覺上完成,就像有人在屏幕上打開Excel並在其中執行某些操作一樣。如果您的舊工作表兼容,我會使用一些現代.Net語言。

+0

這是另一個要求,即Excel表格應該完全隱藏在用戶面前,他應該只能夠使用他創建的表單/視覺效果。對於自動化方法,我們是否可以隱藏預定義表單,向其寫入值,讓公式/宏計算出某些內容,然後再讀取它? – Mike 2012-02-06 17:02:45

+0

我在想你打開完全隱藏的Excel,並允許用戶與全新的軟件交互。如果您希望用戶與Excel進行交互,恐怕他能夠打開您隱藏的任何工作表(如果他知道如何)。 – Dims 2012-02-06 17:22:09

+0

如何讓Excel完全隱藏用戶,但仍然對其進行修改,刷新並從中讀取值?我嘗試了自動化的方式,並且我可以看到它每次進行儀式操作時都會提示保存,或者我完全錯過了什麼? – Mike 2012-02-07 11:31:07