2010-09-15 113 views
0

我正在構建一個ASP.NET MVC 2 Intranet應用程序,用戶將在其中上載數據文件。如果文件是Excel電子表格,則應該給用戶選擇他們想要導入的工作表。其中一些文件可能非常大,因此會異步導入。但是,在不保存/打開文件的情況下獲取工作表列表會很棒。無需打開文件即可在Excel工作簿中獲取工作表

這可能嗎?或者任何人都可以提出一個體面的解決方法(不要求在文本框中接受工作表名稱)?

+0

可以使用ADOX.Catalog列出工作表和命名範圍。 – Fionnuala 2010-09-15 22:10:25

回答

1

您可以通過使用System.IO.Packaging庫來訪問該信息,該庫允許您訪問組成Excel文檔的XML,從而允許您查看組成Excel文檔的工作表。

另一種選擇是使用Open XML SDK 2.0並通過強類型對象訪問工作表,即WorkSheetPart。既不會很快,也不會乾淨,因爲這將是一個很好的工作量,但除了Alex的建議之外,還有其他兩個選擇。

+0

這聽起來很有希望,我會研究和更新線程,如果我得到它的工作。謝謝 – pjacko 2010-09-16 19:55:34

2

我能想到的唯一解決方法是,雖然我毫不猶豫地稱得上體面,但涉及到使用Silverlight並依賴於2007格式的Excel文件(Open XML或任何它所稱的)。然後,您可以使用Silverlight在本地打開該文件,並(駭客地)獲取工作表的列表。你也可以使用Silverlight來做實際的上傳。或者你可以提取相關的工作表,只上傳這些工作表。

+0

謝謝亞歷克斯,不想走銀光的路線,但可能要! – pjacko 2010-09-16 19:54:16

1

如果您只是將數據導入到數據庫中,則可以使用OLE JET 4.0驅動程序並使用System.Data.SqlConnection.GetSchema(我認爲這是函數名稱)來訪問模式。

相關問題