2016-11-17 2 views
2

Я использую VSTO, чтобы привести некоторые данные из базы данных и отображения его на листеVSTO: Не inlcude заголовок столбца

Пользователь нажимает на кнопку, и рабочий лист получает заселенной с некоторыми данными

Проблема заключается в том, что когда данные записываются на рабочий лист, он автоматически включает заголовок столбца, я не хочу, чтобы этот заголовок столбца

Первоначально я задал 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); 
     } 
    } 

Но когда получает данные отображаются, она включает в пустую ячейку:

enter image description here

Ho w полностью ли я избегаю заголовка столбца?

ответ

2

Я боюсь, что Headers из ListObject в Excel не может быть удален. Что вы можете сделать, так это конвертировать ListObject в Range, а затем удалить самую первую строку.

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

Спасибо, это работает – Tuco

+0

Добро пожаловать! – dee

+1

Правильно, в C# индекс первой строки равен '0'. – dee

Смежные вопросы