2011-08-30 4 views
0

Excel에서 가져온 사용자 지정 열을 DataGridView에 채우려고합니다. 이것은 쉬워야하지만 내 인생에서 나는 두뇌에 갇혀있다. 특정 열 (작동)을 선택하고 열 머리글을 excel 클래스로 보내서 해당 열 (작업)의 데이터를 구문 분석하고 구문 분석 된 데이터를 List (작동)로 보낸 다음 datagridview로 데이터를 가져올 수 있어야합니다. 내 데이터 원본을 내 목록으로 설정하여 (열 머리글 텍스트를 만들지 만 코드에서 Value라는 열을 만들어 내 데이터를 추가합니다). 여기에 문제를 만드는 내 코드입니다 : 내가 하나 이상의 열을 선택하면데이터를 올바른 DataGridView 열에 표시하려면 어떻게합니까?

private void btnCreateTable_Click(object sender, EventArgs e) 
    { 
     List<StringValue>[] listArr = new List<StringValue>[columnCount]; 
     ExcelClass getData = new ExcelClass(); 
     tabControl1.SelectedTab = tabDataTable; 
     dgv.Visible = true; 

     DataGridViewTextBoxColumn t = new DataGridViewTextBoxColumn(); 

     //dgvSelectedHeaders.Columns[i].Name = selectedHeaders[i]; 
     for (int i = 0; i < columnCount; i++) 
     { 
      //dgv[i].DataSource = getData.GetDataFromExcel(headersArr[i], path); 
      listArr[i] = getData.GetDataFromExcel(selectedHeaders[i], path); 
      t.Name = selectedHeaders[i]; 
      t.HeaderText = selectedHeaders[i]; 
      dgv.Columns.Add(t); 
      dgv.DataMember = "String"; 
      dgv.DataSource = listArr[i]; 
      for (int j = 0; j < getData.RowCount; j++) 
      { 
       dgv.Rows.Add(); 
       for (int k = 0; k < getData.RowCount; k++) 
       { 
        dgv[k, j].Value = listArr[j][k].ToString(); 
       } 
      } 

     } 

Problem Image http://img820.imageshack.us/img820/4156/dgvimage.png

, 그것은 첫 번째 표시는하지만 행 dgv.Columns에서 첫 번째 후 오류가 발생합니다. 추가 (t); ... InvalidOperationException, 제공된 열이 이미 DataGridView 컨트롤에 속한 경우 ...이 두 가지 질문이 있음을 알고 있지만 어떻게 든 연결되어 있다고 생각합니다.

미리 감사드립니다. 더 많은 코드가 필요하면 알려주십시오.

+0

k-for-loop와 j-for-loops 둘 다에 대해 getData.RowCount가 확실합니까? – Jake

답변

0

나는 당신이 그것을 재사용보다는 각 열

for (int i = 0; i < columnCount; i++) 
{ 
    DataGridViewTextBoxColumn t = new DataGridViewTextBoxColumn(); 
    // ... 
    dgv.Columns.Add(t); 
} 

에 대한 새로운 DataGridViewColoumn을 만들 필요가 있다고 생각합니다.

+0

음 ... 부분적으로 도움이됩니다. 고마워요. 이제 선택한 모든 열을 가져오고 있지만 여전히 하나의 열 (값)에 데이터 만 있습니다. 값은 래퍼 클래스의 Property이며 열 이름으로 설정할 수 없습니다. 우 ... –

관련 문제