2009-05-31 13 views
0

我需要manuplate excel工作表的工作簿(添加張/添加數據/ 隱藏列/保護細胞與密碼 /改變字段內容/等等等等)ASP.NET manuplating Excel表單

我應該使用微軟提供的COM對象(但是我認爲他們在asp.NET中使用的問題很少)

或者是否有一個很好的(commurcial或free)庫/插件用於執行此類活動。

請幫助

回答

1

我發現的最簡單的方法是使用Excel XML format。這樣,您可以像編輯任何其他XML文件一樣編輯Excel工作表。要查看Excel如何隱藏列或使用密碼保護它們,請手動執行這些操作並查看Excel如何將它們保存爲XML。這是一個輕鬆編碼,它是穩定的,而且速度很快。

操作本機Excel文件比較困難:您可以使用帶有primary interop assemblies的COM對象。根據我的經驗,這很難得到正確的答案。在最好的情況下,Excel將自身的舊副本保留下來,這可以通過計劃的每晚重置服務器來減輕。在最糟糕的情況下,Excel會隨機掛起,導致您的網站無響應。

使用本機Excel文件的另一種方式是Visual Studio Tools for Office。這當然更容易比COM互操作使用,從Visual Basic的效果最好:

Application.Workbooks.Open("Workbook.xls") 

C#缺少可選參數,並打開工作簿將成爲一個糟糕的玩笑的事:

Application.Workbooks.Open(@"Workbook.xls", 
    missing, missing, missing, missing, missing, missing, missing, 
    missing, missing, missing, missing, missing,missing, missing); 

我沒有因爲XML操作對我來說工作得非常好,所以深入VSTO。也許其他人可以評論它在ASP.NET網站中的工作方式。

1

隨着SpreadsheetGear你必須對Excel文檔的完全訪問權限,所有的微距能力,包括保護和未保護單元格,列等的能力除了在WinForms中,我們有相同的東西。

0

我們使用了COM對象,我不能推薦它。在很大的問題是,物體永遠不會被釋放...

我們現在使用Gembox軟件的組件。已經使用了兩年,並且工作正常,上面提到的那個便宜一點,在我看到它之前我不知道。