在Visual Basic中使用Excel对象库的脆弱性

时间:2011-02-15 00:28:57

标签: vb.net export-to-excel win32com

前言:这个项目虽然是技术上的功课,但完全属于我5人团队的控制范围。我们提出了项目,定义了范围,并进行了全面的创意控制。所以这不是传统的家庭作业,相当于一个高级项目。

我正在开发的系统的一个输出应该与格式良好的Excel电子表格非常相似。我们可以创建(或找到)图形库并在我们自己的代码中处理打印......但最终我们觉得Excel电子表格文件更具可移植性。用户可以在Excel中打开它,编辑它,通过电子邮件发送它等等。

以编程方式访问Excel似乎很简单(即:http://support.microsoft.com/kb/302094

但我的问题是:当“Office 2013”​​问世并且用户删除Office 2010并安装2013时会发生什么?

我不会继续维护这个项目......我不想强迫别人开放我的代码只是为了引用Excel 13.0 COM。

我将使用API​​的令人难以置信的基本功能。 只要我可以读取和写入一系列单元格,并调整单元格的内部颜色,我的代码就可以工作。

一般情况下,如何让我的VB.Net代码访问目标系统上的Microsoft Excel API? (包括将来的Excel API。)

1 个答案:

答案 0 :(得分:1)

我建议首先使用Excel PIA(主互操作程序集)进行开发,以便在Visual Studio中获得自动完成和联机帮助。

一旦你的程序完成,我建议在发布之前切换到后期绑定,这样你的EXE就可以使用不同版本的Excel。

  1. 首先使用当前的Excel PIA开发,直到它像您一样工作 想要(Google“Excel PIA”下载程序集)
  2. 程序完成后,将Option Strict Off添加到使用Excel对象的模块顶部
  3. 将所有Excel PIA课程替换为Object,例如Dim xls As Excel.Application
    成为Dim xls As Object
  4. xls = New Excel.Application
  5. 替换
    xls = CreateObject("Excel.Application")
  6. 删除Excel PIA参考并整理