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();