2010-07-21 108 views
0

我剛剛開始使用C#,並且無法讀取excel文件。在使用ADO.Net讀取C#excel文件時出現問題

這裏就是我所做的:

OleDbConnection connection = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath + @";Extended Properties=""Excel 12.0;HDR=YES;"""); 

OleDbCommand command = new OleDbCommand("SELECT * FROM [Sheet$]", connection); 

connection.Open(); 

OleDbDataReader reader = command.ExecuteReader(); 

,我有一個異常說,它不能找到「張$」 (我不能複製/粘貼的異常,因爲消息是法語,我還不知道如何在英語中有通用信息)

有人能告訴我我做錯了什麼?

我跟着他們的教程或喜歡這裏Reading Excel files from C#

感謝說什麼,真的!

+1

Sheet'Sheet $'的名稱是?你有沒有試過Sheet1? – MCain 2010-07-21 15:21:23

+0

名稱是Sheet。我認爲$是強制性的,這是所有的例子。但是對於[Sheet],異常說它找不到「Sheet」。 – 2010-07-21 15:59:29

回答

1

您可以從您的Excel文件中獲取「表格」(工作表或指定範圍)的列表:

DataTable schema = connection.GetSchema(OleDbMetaDataCollectionNames.Tables); 

的TABLE_NAME場是你應該在你的查詢中使用的一個。如果值附帶單引號,則需要包含這些值。例如,我的文件有名爲「GP」和「Kimberly Clark」的工作表。在架構表中,它們顯示爲「GP $」和「'Kimberly Clark $'」。在查詢中,我會將它們引用爲「[GP $]」或「['Kimberly Clark $']」。

+0

我重新啓動VS和我的代碼工作,我不知道爲什麼。但是你說的真的很有用,謝謝! – 2010-07-21 16:45:21

相關問題