VSTO:不要包含列标题

我正在使用VSTO从数据库中提取一些数据并将其显示在工作表上

用户按下一个button,工作表被填充一些数据

问题是,当数据被写入工作表时,它会自动包含一个列标题,我不希望这个列标题

我最初设置ListObject.ShowHeaders = false; 但是它包含一个空单元,我不想要一个空单元。

这是我如何声明ListObject

  private void CreateListObject() { worksheet = (Excel.Worksheet)this.Application.ActiveWorkbook.Worksheets[1]; Worksheet extendedWorksheet = Globals.Factory.GetVstoObject(worksheet); Excel.Range cell = extendedWorksheet.Range["C12", "C16"];//Obtain a range this.listObject = extendedWorksheet.Controls.AddListObject(cell, "Data");//Add to ListObject this.listObject.AutoSetDataBoundColumnHeaders = false; this.listObject.ShowAutoFilter = false; this.listObject.ShowHeaders = false; //I thought this was enough this.listObject.ShowTableStyleRowStripes = false; } 

这是我如何填充数据

  internal void DisplayData() { try { using (MyDbContext db = new MyDbContext ()) { List<Thing> things= db.Things.ToList(); CreateListObject(); string[] mappedColumns = { "serialNumber" }; this.listObject.SetDataBinding(things, string.Empty, mappedColumns); } } catch (Exception ex) { MessageBox.Show(ex.Message); } } 

但是当数据显示时,它包含一个空单元格:

在这里输入图像说明

我如何完全避免该列标题?

恐怕Excel中ListObject Headers不能被删除。 你可以做的是将ListObject转换为Range ,然后删除第一行。

 Range rng; rng = this.listObject.Range; this.listObject.Unlist(); rng.Rows[0].Delete();