VSTO Excel:如何使用ListObject进行自定义列映射?

我有一个这样的模型:

public class Instrument { public string Id { get; set; } public string Name { get; set; } // About 100 other properties } 

我从Entity Framework EDM中检索Instrument实例。

现在我想要做的是能够进行自定义映射,将此数据集绑定到Excel ListObject。 默认情况下,ListObject将显示Excel工作表中的每一列,但我只想显示一些属性和特定的顺序。

 ExcelTools.ListObject instrumentsTable = this.Controls.AddListObject(tableStart, tableName); instrumentsTable.DataSource = myEDM.Instruments; // Custom mapping code... 

我试图使用SetDataBinding方法,但它抛出了一个数据绑定exception。

有人能帮我实现吗?

谢谢。

我不知道这是否有帮助,但我创build了一个testing项目。 testing项目运行没有问题。

首先,我宣布一个testing课:

 public class Instrument { public string Id { get; set; } public string Name { get; set; } public string Property1 { get; set; } public string Property2 { get; set; } } 

我有一个函数getInstruments,返回一个List。

然后我使用这个代码将它绑定到一个表单上:

  List<Instrument> list = getInstruments(); ListObject instrumentsTable = Controls.AddListObject(Range["A1", "B4"], "list1"); string[] mappedColumns = { "Name", "Property1" }; instrumentsTable.SetDataBinding(list, string.Empty, mappedColumns); 

这将显示一个工作表,其中4个工具显示A和B列中的Name和Property1。

我也试过这个使用entity framework,将工作表连接到我的数据库之一,并没有遇到任何问题。

如果仍有问题,请提供有关使用SetDataBinding时遇到的exception的更多信息。