2011-11-22 69 views
0

我有一個奇怪的問題。例如,我用10行加載一個文件.xls,其中一個在列B中有一個長字符串,所以有時它不會加載dataGridView中的整個字符串。根據其他行的Excel文件加載整個字符串或不。從Excel到dataGridView的數據

你知道爲什麼嗎?

我希望我解釋得很好。對不起,我英語不好。

由於

編輯:

這是我的代碼加載的dataGridView:

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

它會幫助,如果你有你如何將.xls文件關聯到GridView。你在使用ODBC嗎? COM Interop?或者是其他東西? –

+0

對不起,我剛編輯它。 – Panecillo

+0

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

回答

0

這是OLE Jet提供的限制,並且通常是由掃描行數而引起猜猜這個領域需要多長時間。你可以編輯你的註冊表來擴展它,但如果你有很長的電子表格,你將會受到性能影響。

如果這確實是問題,那麼你就需要編輯註冊表項「SOFTWARE \微軟\噴氣\ 4.0 \發動機\ EXCEL」從8到0