2009-09-08 30 views
0

下午好,創建從Excel工作簿派生的ASP.net 3.5網絡表單應用程序

客戶向我提供了他的團隊用於爲產品提供報價的電子表格文件。電子表格在底層工作表中包含大量數據,並將這些工作表稱爲報價單上衆多公式的一部分。

我已經接受了網絡啓用此工具的任務,以便可以在運行ASP.net 3.5 webforms的共享環境中託管的客戶端網站上生成引號。報價單表單將位於由ASP.net會員API控制的網站的受限制部分。

是否有第三方工具可以很好地處理這類事情?

感謝, 希德

+1

@Alex:這也證實了我的思維過程。在Web表單完全開發之前,工作人員仍然可以使用他們的電子表格:) – SidC 2009-09-08 20:54:34

回答

4

我曾經被要求做同樣的事情。我拒絕了。其他人試過這個,它變成了徹底的失敗。這是因爲您的設計基於電子表格的結構。

當我被召回來幫助這個項目時,我將以前的代碼踢到一個大垃圾箱裏,這個垃圾箱會一直關閉,直到地獄凍結!然後我開始分析Excel表格,提取業務邏輯並將其作爲文檔寫下來。這使我可以創建一個好的設計,以設置不是基於Excel工作表的新項目的第一個版本,而是基於工作表中的業務邏輯。

不要陷入這個陷阱!這聽起來太簡單了,但實際上,由於所遇到的所有問題,解決方案過於昂貴!


如果您的客戶確實需要真正快速地使用某些東西,請從.NET(帶有最新Service Pack或更高版本的VS2008)和SQL Server開始。首先創建一個簡單的數據庫結構來包含引號。根據需要添加儘可能多的關係。然後,使用VS2008,基於「動態數據 實體 Web應用程序」創建一個新項目,該項目將使用實體框架連接到數據庫。確保實體框架連接到您的數據庫並提供所有數據。 (通過添加一個「ADO.NET實體數據模型」。)編譯它,將其放在Web服務器上,並且版本0.1應該準備好。它將允許您的客戶繼續輸入數據,儘管以一種原始的方式,同時保持數據的完整性。它仍然不足以暴露給外部世界,但它更容易擺脫Excel電子表格的數據部分。 (從技術上講,應該可以在一小時內在實體模型周圍添加一個RESTful服務,以允許Excel從Web服務讀取數據。)

當此起始頁面創建完成後,您的客戶可以獲得用於通過網頁進行數據輸入,而您有一些時間可以更多地分析電子表格以優化數據模型並創建自定義邏輯和更好的數據輸入頁面。

基本上,這是我用過的方法。我的客戶在Excel工作表中有數據,這些數據已導出到Access數據庫,該數據庫用作其應用程序用戶的只讀數據。他使用Excel來保持數據是最新的。但是,當多個用戶開始在同一個Excel表格中維護數據時,他遇到了很大的麻煩,多次損失了Excel工作表的完整性和數據。

我第一次創建與周圍的實體框架Excel數據一個簡單的數據模型/ DDS更容易輸入數據,然後我可以優化數據庫結構,而客戶只是繼續修改數據。偶爾,我會更新數據庫結構,添加更多關係並重構數據以進行更優化,並且一次添加RESTful服務功能,以便客戶可以通過簡單的Web請求將數據作爲XML獲取。現在,客戶已經完全忘記了Excel表格,並且正在全職使用該網站。他已經接受了將其變成一些花哨的網站的事實將花費大量時間,但目前的情況是完全可以接受的。

這種方法成功的地方,以前的嘗試失敗,僅僅因爲我只專注於數據,沒有更多。現在我可以通過一些小步驟來改進它。但第一步:分析Excel工作表並將數據轉儲到數據庫中。 Entity框架將允許您快速構建簡單的站點,而無需付出太多努力。

+1

我傾向於同意。使用您的原始電子表格作爲新軟件設計的基礎。 – 2009-09-08 20:50:28

+1

非常感謝!我非常感謝您的時間和意願,分享您將如何解決這個問題。再次感謝:) – SidC 2009-09-09 14:58:55

+0

不客氣!很高興有幫助。 :-) – 2009-09-09 15:07:28

相關問題