3

我有在 Excel 插件的 VSTO 版本中工作的代码

Microsoft.Office.Tools.Excel.ListObject lo = Globals.ThisAddIn.VSTOWorksheet.Controls.AddListObject(r, "lo1");
lo.AutoSetDataBoundColumnHeaders = true;
lo.DataSource = dt; //some DataTable

我使用这个 API 是因为它的声明性数据绑定语法。并且 Excel.Interop API 没有 AutoSetDataBoundColumnHeaders 等方法。

如果我可以导入 Microsoft.Office.Tools.Excel.ListObject,如果没有 Excel DNA 中的 VSTO 内容,我将如何解决我调用 AddListObject 的 Controls 集合?

任何解决方案都会很好,即使它涉及废弃我的代码,但总的来说,我想了解何时使用 Excel DNA 中的哪个 API 来完成这些数据绑定工作。

4

1 回答 1

3

VSTO 在 Excel 对象模型之上添加了一些扩展。我没有使用 VSTO 的经验,对于 ListObjects 之类的东西,我不知道 Excel 的对象模型在哪里结束,扩展的 VSTO 包装器对象从哪里开始。

边界基本上是这样的:Microsoft.Office.Interop.Excel 可以从 Excel-DNA 中使用(所以这是您可以使用的 ListObject 接口:http: //msdn.microsoft.com/en-us/library/microsoft.office .interop.excel.listobject_members.aspx)。Microsoft.Office.Tools.Excel 是 VSTO 的一部分。

另外,我真的不知道 VSTO 库是否可以与 Excel-DNA 一起使用。问题在于初始化和连接 VSTO 库——这可能很棘手。

在 Excel 对象模型之上尝试自己重新实现这些对象模型扩展可能是值得的。我认为 VSTO 没有做任何你自己做不到的事情。

于 2011-07-07T22:01:15.487 回答