2013-08-05 138 views
0

當試圖運行這些行:C#無法打開excel文件

var app = new Excel.Application(); 
Excel.Workbook workbook = app.Workbooks.Open(pathToFile, Type.Missing, true, Type.Missing, Type.Missing, 
                Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
                Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); 

我已經得到了這些問題:

1)我得到的「文件轉換的消息是在進步」。爲什麼我需要轉換某些東西,如果我只想從其中一張工作表中讀取一列。

2)我收到此錯誤信息:enter image description here

爲什麼我需要關心的是哪個版本創建的Excel?

3)最後我得到一個異常:「太多不同的單元格格式」。

因此,我使用打開的工作簿方法的方式有什麼問題,或者有另一種方式從Excel文件中讀取包含多個工作表的特定列,而我只需要從一個特定工作表讀取數據?

+1

我假設你的Interop DLL不是你正在打開的文件的正確版本。嘗試找到一個更新的? – Bridge

+0

我的猜測是,這個錯誤信息直接來自excel,在interop中沒有問題。你有沒有嘗試手動打開該文件? – nhrobin

+0

這裏的錯誤信息是我從微軟看到的更具描述性的一個,它似乎解釋了它自己。 @nhrobin最有可能他所使用的互操作版本將與他正在運行的Excel版本相媲美,所以他應該得到相同的錯誤,我認爲手動打開它 – chancea

回答

6

它可能不是很明顯,但你打電話

new Excel.Application() 

打開的Excel的實例(你可以檢查它的任務管理器)。所以如果你的Excel版本與你打開的文件不兼容,你會得到這個錯誤。

由於您試圖使用Excel應用程序打開Excel文檔,因此您需要關注它們的版本。我想OpenXML SDK可以幫助你。