excel - 我可以在 Excel DNA 项目中使用 Microsoft.Office.Tools.Excel,还是有其他方法来完成表的数据绑定(bind)?

标签 excel excel-dna

我有可在 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/

相关文章:

excel - 在不使用 VBA 的情况下突出显示 Excel 中的事件行/列?

excel - 在用户窗体初始化子中访问本工作簿中声明的变量

c# - 通过 Excel-DNA 将 Excel.Range 从 VBA 传递到 C#

ExcelDna 和独立 F# 安装

java - 如何使用 java Apache POI 库从 XLSX 文件的特定单元格中获取值

vba - 可以在菜单中列出带有可选参数的过程来运行宏吗?

Excel 2013 在 VBA 中打印为 PDF

c# - 当从后台工作程序发生事件时,XlCall.Excel(XlCall.xlcCalculateNow) 抛出 XlCallException

c# - 使用 Excel-DNA,如何区分 Excel 加载项函数调用中未指定的参数和缺失的参数?

c# - 什么是与 ExcelDna 一起使用的好的 .Net RefEdit 控件?