2010-01-18 56 views
2

我目前正在開發一個需要從一個Excel電子表格中導入其數據64位的C#應用​​程序。我聽說最好的方法是使用ADO數據連接。然而,我已經閱讀(並經歷過)爲了完成這項工作,我必須編寫一個32位應用程序,因爲沒有用於64位應用程序的OleDb odbc驅動程序。使用ADO 3.5的進口數據從EXCEL導入64位應用程序

的問題是,我不能編譯我的應用程序作爲32位應用程序或該程序的其他部分(未可重寫的)會分解。

,我不能在64位應用程序從Excel導入數據的事實似乎是一個相當可笑的問題。我該如何解決這個問題?或者,如果不是,有什麼解決方法可用?

回答

3

兩個可能的解決方案:

  1. 使用Open XML SDK代替。這是Office 2007特有的,但它直接處理文件,不必通過任何數據庫驅動程序。這是我選擇的武器,因爲它比自動化更快,更省時,可以處理更「高級」的任務,如格式化。

  2. 編譯一個單獨的x86二進制文件,並根據需要從64應用程序啓動進程。導入器應用程序可以使用某種形式的IPC提供反饋,或者簡單地將文件轉換爲CSV文件,您可以在x64應用程序中本地讀取該文件。 (我不是這種類型的雜牌的完全是一個迷,但你做你已經什麼必須做...)

我同意,這是一種荒謬的,我們還沒有在x64 JET或ACE驅動程序,但現在是that seems to be the way it is。即使MSDASQL也不適合你;有一個64位的庫,但我讀過Excel組件仍然只能在32位模式下工作。

0

你有看着使用VSTO(對於Office Microsoft Visual Studio工具,我認爲,目前以VS 2008的一部分,並且是在早期版本可從微軟免費下載)?還是使用OLE自動化?你

0

是一個Excel兼容的.NET組件,它是用C#編寫的安全託管代碼,並且爲「任何CPU」編譯,因此它適用於32位和64位.NET。這是.NET的一大優勢--SpreadsheetGear.dll的一個構建與32位.NET CLR和64位.NET CLR一樣有效。

你可以看到在線樣本here並下載免費試用here

聲明:我自己的SpreadsheetGear LLC

相關問題