2014-03-26 41 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

相关问题