2016-08-04 1 views
1

VSTO를 처음 사용하며 익숙하지 않은 문제가 발생했습니다. Excel 2013에서 간단한 표를 표시하려고하는데 열 표시 이름이 "Column1, Column2, Column3"이되는 것을 제외하고 모든 것이 채워집니다.DataTable DataColumn ColumnName이 표시되지 않습니다.

여기 내 코드입니다 :

 var worksheet = Globals.Sheet1; 

     worksheet.Cells.Clear(); 

     var table = new DataTable("Users"); 

     // Set Columns 
     var columns = new List<DataColumn> 
     { 
      new DataColumn("Staged") { ColumnName = "Staged", Caption = "Staged"}, 
      new DataColumn("FirstName") { ColumnName = "First Name", Caption = "First Name" }, 
      new DataColumn("LastName") { ColumnName = "Last Name", Caption = "Last Name"} 
     }; 

     foreach (var column in columns) 
     { 
      table.Columns.Add(column); 
     } 


     var lastFilledRow = 1; 

     // Populate data 
     for (var i = 1; i < 11; i++) 
     { 
      var row = table.NewRow(); 
      row[table.Columns[0]] = ""; 
      row[table.Columns[1]] = "Joesph " + i; 
      row[table.Columns[2]] = "Bellow " + i; 

      table.Rows.Add(row); 
      lastFilledRow++; 
     } 
     var lastCell = "C" + lastFilledRow; 

     worksheet.Controls.Remove("userList"); 
     var list = worksheet.Controls.AddListObject(worksheet.Range["A1", lastCell], "userList"); 

     list.SetDataBinding(table); 

디버그 모드에서 코드를 단계별로, 나는 "열 1"로 설정된 속성을 볼 수없는 코드를 통해 모든 방법하지만이 제공 한 값으로 설정됩니다. 나는 이것들이 ColumnName의 디폴트 값이라는 것을 알고있다.

내 질문은 왜 ColumnName에 대한 값을 명시 적으로 설정하고 있는데 Column1, Column2, Column3으로 Excel에서 ColumnNames를 인쇄합니까?

+0

이 링크 및 특히 예제가 문제를 해결합니까? 세 번째 코드를 사용해야하는 것 같습니다 https://msdn.microsoft.com/en-us/library/x81bad6y.aspx – PetLahev

+0

@PetLahev Nope. 그래도 문제가 해결되지 않음 – Cameron

답변

0

명시 적으로 열의 이름을 지정해야합니다. var list = ... 뒤에 다음을 추가하십시오.

list.ListColumns[1].Name = "Staged"; 
list.ListColumns[2].Name = "First Name"; 
list.ListColumns[3].Name = "Last Name"; 
관련 문제