我有可在 Excel 插件的 VSTO 版本中运行的代码
Microsoft.Office.Tools.Excel.ListObject lo = Globals.ThisAddIn.VSTOWorksheet.Controls.AddListObject(r, "lo1");
lo.AutoSetDataBoundColumnHeaders = true;
lo.DataSource = dt; //some DataTable
我使用这个 API 是因为它的声明性数据绑定(bind)语法。并且 Excel.Interop API 没有 AutoSetDataBoundColumnHeaders 等方法..
如果我可以导入 Microsoft.Office.Tools.Excel.ListObject,我将如何解析在 Excel DNA 中没有 VSTO 内容的情况下调用 AddListObject 的 Controls 集合?
任何解决方案都会很好,即使它涉及废弃我的代码,但总的来说,我想了解何时使用 Excel DNA 内的哪个 API 来完成此数据绑定(bind)工作。
最佳答案
VSTO 在 Excel 对象模型之上添加了一些扩展。我没有使用 VSTO 的经验,对于 ListObjects 这样的东西,我无法分辨 Excel 的对象模型在哪里结束以及扩展的 VSTO 包装对象在哪里开始。
边界基本上是这样的:Microsoft.Office.Interop.Excel 可以从 Excel-DNA 使用(因此这是您可以使用的 ListObject 接口(interface): 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 正在做任何你自己做不到的事情。
关于excel - 我可以在 Excel DNA 项目中使用 Microsoft.Office.Tools.Excel,还是有其他方法来完成表的数据绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6603876/