取消列表后删除Excel ListObject

我在C#中做一个VSTO插件项目。

基本上,我想从数据库检索数据,并把它放在Excel中。 但是,我只是想以简单的范围的格式写入数据,而不保留任何types的绑定到数据源。

为此,我创build一个ListObject并将其数据源设置为填充了数据的数据表。 然后,我调用方法Unlist将表转换回正常范围,他们我试图从工作表中删除listobject,所以我可以使用相同的listobject名称,当我重复此过程。

问题是,当我尝试删除列表对象C#抛出一个错误的索引exception。

这里是代码:

Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)Globals.ThisAddIn.Application.ActiveSheet; Worksheet extendedWorksheet = Globals.Factory.GetVstoObject(worksheet); Microsoft.Office.Interop.Excel.Range cell = extendedWorksheet.Application.ActiveCell; Microsoft.Office.Tools.Excel.ListObject listObject; BindingSource bindingSource = new System.Windows.Forms.BindingSource(); DataTable dataTable = new DataTable(); bindingSource.DataSource = dataTable; listObject = extendedWorksheet.Controls.AddListObject(cell, "list1"); listObject.AutoSetDataBoundColumnHeaders = true; listObject.SetDataBinding(bindingSource, ""); listObject.Unlist(); extendedWorksheet.Controls.RemoveAt(0); 

我也尝试了一些变化,以删除listobject,但没有一个工作:

 extendedWorksheet.Controls.Remove("list1'); //or listObject.Delete() //or foreach (ListObject x in extendedWorksheet.Controls) { x.Delete(); }