2011-11-22 3 views
0

이상한 문제가 있습니다. 예를 들어 파일 .xls를 10 개의 행으로로드하고 그 중 하나에는 B 열에 긴 문자열이 있으므로 dataGridView에서 전체 문자열을로드하지 않는 경우가 있습니다. 에 따르면 다른 Excel 파일의 행은 전체 문자열을로드하거나하지 않습니다.데이터를 Excel에서 DataGridView로 변환

이유를 알고 계십니까?

나는 그것을 잘 설명하기를 희망한다. 미안하지만 내 나쁜 영어.

감사

편집 :이 스캔 행의 수에 의해 발생 일반적으로 OLE Jet 공급자의 제한 사항입니다 및

string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\test.xls;Extended Properties=""Excel 8.0;HDR=YES;"""; 

     DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.OleDb"); 

     DbDataAdapter adapter = factory.CreateDataAdapter(); 

     DbCommand selectCommand = factory.CreateCommand(); 
     selectCommand.CommandText = "SELECT * FROM [sheet1$]"; 

     DbConnection connection = factory.CreateConnection(); 
     connection.ConnectionString = connectionString; 

     selectCommand.Connection = connection; 

     adapter.SelectCommand = selectCommand; 

     data = new DataSet(); 

     adapter.Fill(data); 

     dataGridView1.DataSource = data.Tables[0].DefaultView; 
+1

에 "엑셀 \ 4.0 \ 엔진 \ 마이크로 소프트 \ 제트 \ SOFTWARE"레지스트리 키를 수정해야 .xls 파일을 GridView에 연결하는 방법. ODBC를 사용하고 있습니까? COM Interop? 또는 다른 것? –

+0

죄송합니다. 방금 편집했습니다. – Panecillo

+0

[Duplicate] (http://stackoverflow.com/questions/898513/excel-cell-values-are-truncated-by-oledb-provider)? – sq33G

답변

0

: 여기

는 DataGridView를로드하려면 코드입니다 그 분야를 얼마나 오랫동안 만들 수 있을지 짐작할 수 있습니다. 확장을 위해 레지스트리를 편집 할 수 있지만 스프레드 시트가 길면 성능이 저하됩니다. 이 경우

, 참으로, 문제는, 당신은 당신이 포함하는 경우 그것은 도움을 줄 8에서 0

관련 문제