2010-06-25 71 views
0

我有一個網站,企業可以加載項目出售。然後最終用戶可以搜索該項目,並找到所有的商店。是否可以將Excel文件加載到內存中?

大多數商店賣100分多的東西,雖然我有用於插入單個項目形式,這是極大的愚蠢只有這爲企業提供的東西。

我的想法是有一個選項,企業可以上傳一個excel文件,並讓我的ASP.Net應用程序從列中提取信息並填充類,然後使用Entity Framework 4魔法,我將堅持這一切的信息一舉。

是否有任何陷阱,我應該我應該知道這樣做的時候? 這可能嗎? 這是一個非常重要的過程在我的服務器上(它會把我的網站弄糟)嗎?

編輯: 到目前爲止,似乎爲了我解析XML文件,我需要安裝Office。我不確定Winhost.com是否提供這種功能。

另一種解決方案是使用CSV文件接收信息。祕書如何輕鬆創建CSV文件,請記住,她可能是首先要創建文件的人。這對電腦有缺陷的人來說很容易創建嗎?

解析CSV將是微不足道的我想,但我希望把重點放在用戶體驗和沒有人我的網站,讓他們學到東西罵人。

編輯2: 完全忘了提,那當然的我會提供一個模板供他們使用,這將是絕對愚蠢的就是假定他們將按照表格的佈局。所以不要把這個問題考慮在內。我也知道我必須驗證每一列,以便他們不會在價格字段中寫入'lolgei'或類似的東西。

回答

2

一些快速的想法......

驗證輸入數據將是非常重要的。由於這是一個獨立的過程,因此您需要將其鎖定得非常緊密,以便用戶不會嘗試上傳他們不應該的內容。

運行辦公自動化的過程通常是一個麻煩的解決方案,增加了一個Microsoft Office依賴於你的服務器部署以及如果可能的話,特別是如果你的目的是在其上運行後這個這個代碼回,最好避免。

一個更好的解決方案可能是最終用戶提供與輸出,然後可以上傳一個XML文件,一個Excel模板。這樣,它更容易處理,並且更容易驗證並消除對服務器上Microsoft Office的依賴。 Excel有一些很好的xml特性。就我個人而言,我會選擇這種方式將工作簿本身發送到服務器。

希望這會有所幫助..

享受!

-1

也許這將有助於設計一個管理頁面,使得很多項目可以在一次輸入。我這樣說是因爲無論如何,即使你發佈了一個「標準」/空的Excel文件作爲他們輸入數據的模板,用戶將不得不鍵入每個項目,然後導入。

0

當我這樣做時,我使用CSV文件而不是XLS文件,因爲CSV文件在服務器端更容易解析。用戶上傳文件後,下一步是驗證數據並顯示任何錯誤或警告。如果用戶可以通過導入過程更新現有記錄,這會變得更加複雜。然後,您的代碼必須能夠在2個數據存儲之間進行同步,而不僅僅是批量插入記錄。

+0

我沒有想過通過上傳完整的產品列表來更新產品信息。我會考慮這一點,但現在我只允許他們提供的每個產品使用單個編輯頁面。 – 2010-06-25 17:03:47

1

我做了類似的事情。道格是對的,辦公自動化可能有點棘手,在這裏並不是真的必要。簡單的csv文件怎麼樣?加載它們很容易,它們是可解析的,並且可以很容易地進行驗證。

祕書可能會接受培訓,以正確的格式創建Excel表。將該工作表保存爲CSV文件是一項簡單的任務(文件 - >另存爲 - > csv)。

+0

雖然您所說的一切都是真實的,但我必須確保創建所述產品清單的過程儘可能地方便企業創建。請記住,這是一個祕書,他可能會創建這個文件。她甚至會知道CSV是什麼嗎? – 2010-06-25 17:02:27

0

我可以提出一個橫向的想法嗎?如何構建Excel工作表的插件,您可以將其分發給客戶?它可以處理所有必需的身份驗證等,也可以按下按鈕,將信息發送到您的ASP.NET服務器(或者更好的WCF服務,然後您可以發佈&子)。當然,在這一點上,您不必擔心將Excel格式轉換爲.NET可讀格式 - 這可以從插件前端格式化爲您的心願,無論是XML序列化對象,csv,隨你。

只是我的$ 0.02的價值......

+0

感謝您的輸入,但我對Excel編程有着零的體驗。我只知道如何給一張桌子一個邊框,就是這個。我不想投資於一項新技術,以獲得如此微不足道的東西(在更大的圖片中)。 – 2010-06-25 17:04:35

-1

我不明白你爲什麼會想填充從Excel文件的對象。爲什麼不創建一個例程來允許客戶上傳excel文件,解析它,並將多個項目插入到您現有的數據庫中?看來你已經有了一個架構。你想要的方法似乎過於複雜。

我之前就做過這樣的導入,但要小心噴氣提供商會吃掉連接。

Help me find the leak in this excel import code

我結束了CSV解析,而不是去。

+0

我不知道你在說什麼。你正在談論做與我打算做的完全相同的事情。這個答案的重點是什麼? – 2010-06-25 17:05:33

+0

讀你的問題 - 你沒有說明excel文件內容首先填充數據庫。 「從列中提取信息並填充類」 – ScottE 2010-06-25 17:56:59

0

首先要擔心的是您的用戶想要的各種演示文稿。你應該給他們一個模板,但即使如此,用戶也會以非常有創意的方式搞砸了。

請勿使用自動化功能讀取Excel文件。它不受支持,有一天它將停止工作。讓用戶上傳xlsx文件,並使用OpenXML SDK來提取數據。

1

FWIW,過去我一直對SpreadsheetGear印象深刻。這對你將不得不做的驗證無關緊要,但是你可能會發現這是一種更簡單的方式來處理數據。

相關問題