【问题标题】:Open Excel file .NET Framework 3.5打开 Excel 文件 .NET Framework 3.5
【发布时间】:2014-03-26 15:46:00
【问题描述】:

我编写了一个 VB .NET 程序,它打开一个 Excel 工作簿来放置一些值。 这是打开文件的代码:

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 Framework 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))

我猜3.5和4.5打开Excel文件的方式不一样所以不知道该怎么做。

【问题讨论】:

  • 您在编译时是否还针对 x86 或 x64?根据您的 Office 版本,它可能需要 x86。

标签: .net vb.net excel


【解决方案1】:

也许您可以找到一些使用 .Net 3.5 的早期互操作库?

当我针对 Office 2010 和 2007 时,我发现如果我使用 2010 互操作 DLL,我也可以使用它们与 2007 和 2003 Office 通信。我无法使用仅在更高版本中出现的任何功能。

这是从 .NET 到 3.5 的不同版本,我没有尝试更高版本。不确定您使用的方法是否与我和我使用的 C# 相同,但不确定是否重要。如果您使用 32 位 Office,请确保构建 x86 .net 应用程序。

【讨论】:

  • 我完全不熟悉所有这些 DLL 的东西。我在哪里可以找到早期的 DLL 以及如何安装它们?
  • 它们随 Visual Studio 的每个版本一起提供......所以 VS 2012 是 @C:\Program Files (x86)\Microsoft Visual Studio 11.0\Visual Studio Tools for Office\PIA\Office14
  • 您最好的选择是使用 VSTO - Visual Studio Tools (for) Office 进行开发。在 MSDN 上查看。
猜你喜欢
  • 1970-01-01
  • 2015-04-26
  • 2014-07-09
  • 1970-01-01
  • 2019-05-10
  • 2015-10-25
  • 1970-01-01
  • 1970-01-01
  • 2019-12-29
相关资源
最近更新 更多