2014-03-26 88 views
0

你好,我試圖從一個Excel xlsx文件拉,但我不斷收到一個錯誤「外部表格不是預期的格式。」下面有什麼,我用我的連接字符串:Excel 2007連接字符串(xlsx)


String excelConnString = String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0}; Extended Properties='Excel 12.0;'", filePath); 

using (OleDbConnection excelConnection = new OleDbConnection(excelConnString)) 
      { 
        excelConnection.Open(); 

文件路徑 - 簡單地說就是我的Excel電子表格,這是從一種形式上傳控件拉昇的文件路徑的字符串。

我到了我想要打開連接的代碼點,它只是出了錯誤。但是這裏是踢球者....我在.XLS文件上嘗試了相同的連接字符串,並且連接正常,甚至按預期運行了查詢。當我谷歌連接字符串,我發現我使用相同的連接,因爲其他人只是我不會工作。任何幫助表示讚賞。

+0

的MS Office,您使用的版本2007/2010? –

回答

2

試試這個

"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0}; Extended Properties='Excel 12.0 Xml; HDR=YES'" 

或本

"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0}; Extended Properties='Excel 12.0; HDR=YES'" 
+0

嘗試過......仍然沒有去 – MProgramerX

+0

你認爲它與我的微軟ACE有關嗎? – MProgramerX

+0

我認爲不是...確保它正確充電變量「filePath」 – Nacho

0

嘗試用這個宏啓用連接字符串:

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myExcel2007file.xlsm; 
Extended Properties="Excel 12.0 Macro;HDR=YES"; 
+0

這是我第一次嘗試使用宏啓用字符串,它仍然沒有工作,雖然 – MProgramerX

+0

可能有這個錯誤的原因很多;其中之一是該文件被另一個用戶鎖定,例如,您的文件位於共享驅動器上,另一個用戶打開了該文件,或者該文件是由其他應用程序上傳或創建的,並且該應用程序仍然對其進行鎖定,如果這是一次性加載,那麼您只需複製該文件並加載該文件的複製版本即可。 –

+0

您也可以參考此鏈接以獲取有關此錯誤的信息:[msdn link](http://support.microsoft.com/kb/2459087) –