我的代码适用于Excel Addin的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来完成这个数据绑定的东西。
答案 0 :(得分: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正在做任何你自己做不到的事情。