2011-11-22 67 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