2014-03-26 43 views
1

我寫打開一個Excel工作簿把一些值的VB .NET程序。 下面是打開文件的代碼:打開Excel文件的.NET Framework 3.5

OpenFileDialog1.FileName = "" 
OpenFileDialog1.Filter = "Excel files (*.xls)|*.xls" 
OpenFileDialog1.ShowDialog() 
filePath = OpenFileDialog1.FileName 
If System.IO.File.Exists(filePath) Then 
    oExcel = CreateObject("Excel.Application") 
    oExcel.Visible = True 
    oBook = oExcel.Workbooks.Open(filePath) 
End If 

這個工作順利,直到我不得不在一臺舊電腦運行至極它沒有.NET框架4.5,也不4.0

然後我改變框架目標3.5,它給了我這個錯誤中運行時:

An unhandled exception of type 'System.Runtime.InteropServices.COMException' occurred in Microsoft.VisualBasic.dll 

Additional information: Old format or invalid type library. (Exception from HRESULT: 0x80028018 (TYPE_E_INVDATAREAD)) 

我想打開一個Excel文件的方式是不一樣的3.5或4.5,所以我不知道應該怎麼辦。

+0

你在編譯時是否也針對x86或x64?根據您的Office版本,它可能需要x86。 –

回答

1

也許你可以找到一些早些時候使用.Net 3.5的Interop Libs?

當我針對Office 2010和2007時,我發現如果使用2010 Interop DLL,我可以使用它們與2007和2003 Office進行通話。我無法使用僅在更高版本中出現的任何功能。

這是從不同版本的.NET到3.5,我沒有嘗試更高。不確定您是否使用與我自己相同的方法,並且使用C#,但不確定是否重要。如果您使用32位Office確保您構建x86 .net應用程序。

+1

我完全不熟悉所有這些DLL的東西..我在哪裏可以找到早期的DLL,我該如何安裝它們? – pocpoc47

+0

他們來與Visual Studio的每個版本...所以VS 2012是@ C:\ Program Files文件(x86)的\微軟的Visual Studio 11.0 \ Visual Studio工具用於Office \ PIA \ OFFICE14 – AnthonyLambert

+0

你最好的選擇是與VSTO開發 - Visual Studio Tools(for)Office。在MSDN上查看它。 – AnthonyLambert

相關問題