适用于所有excel版本的程序

Sat*_*h K 2 vb.net excel officedev

我最近开发了一个Windows窗体应用程序,它有几个数据网格.我的客户需要将数据导出到Excel中.他们使用不同版本的Excel(即2003,2007,2010,2013),但我使用的是Office 2013.我使用了excel 2013参考资料

(Microsoft excel 15.0对象库)

在我的程序中.最近,我的客户报告说导出选项不起作用.从我的调查看来,我的应用程序似乎适用于那些使用Office 2013但不适用于以前的Office版本的用户.

我该怎么做才能确保我的应用程序在旧版本的Excel中运行?

Ste*_*eve 10

如果您知道所有用户都具有Excel,则可以将excel引用转换为"Object"而不是硬编码的excel对象,然后从项目中删除DLL引用.这将适用于所有版本的办公室,只要您不使用旧版本中没有的某些新功能.

例如,而不是这样:

Dim _xlApp As Excel.Application
Dim _xlBook As Excel.Workbook
Run Code Online (Sandbox Code Playgroud)

试试这个:

Dim _xlApp As Object 'Excel.Application
Dim _xlBook As Object 'Excel.Workbook
Run Code Online (Sandbox Code Playgroud)

除了excel应用程序的实例化之外,一切都是相同的(除了没有智能):

_xlApp = CreateObject("Excel.Application") 'New Excel.Application
Run Code Online (Sandbox Code Playgroud)

我已经这样做了15年,没有根据不同版本更改我的代码.

  • +1请注意,这被称为"后期绑定". (3认同)