VSTO:不包括列 header
VSTO: Don't include column header
我正在使用 VSTO 从数据库中获取一些数据并将其显示在工作表上
用户按下按钮,工作表中填充了一些数据
问题是,当数据写入工作表时,它会自动包含一列 header,我不需要这一列 header
我最初设置 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);
}
}
但是当显示数据时,它包含一个空单元格:
如何完全避免该列 header?
恐怕 Excel 中 ListObject
的 Headers
无法删除。您可以做的是将 ListObject
转换为 Range
,然后 删除 第一行。
Range rng;
rng = this.listObject.Range;
this.listObject.Unlist();
rng.Rows[0].Delete();
我正在使用 VSTO 从数据库中获取一些数据并将其显示在工作表上
用户按下按钮,工作表中填充了一些数据
问题是,当数据写入工作表时,它会自动包含一列 header,我不需要这一列 header
我最初设置 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);
}
}
但是当显示数据时,它包含一个空单元格:
如何完全避免该列 header?
恐怕 Excel 中 ListObject
的 Headers
无法删除。您可以做的是将 ListObject
转换为 Range
,然后 删除 第一行。
Range rng;
rng = this.listObject.Range;
this.listObject.Unlist();
rng.Rows[0].Delete();