我有一个奇怪的问题。例如,我加载了一个包含10行的.xls文件,其中一行在B列中有一个长字符串,因此有时它不会在dataGridView中加载整个字符串。根据其他人的说法,excel文件的行是否加载了整个字符串。
你知道为什么吗?
我希望我解释得很清楚。对不起我的英文不好。
由于
编辑:
这是我加载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;
答案 0 :(得分:0)
这是OLE Jet提供程序的限制,通常是由扫描的行数来猜测生成该字段的时间。您可以编辑注册表以扩展它,但如果您有足够长的电子表格,则会受到性能影响。
如果这确实是问题所在,那么您需要将注册表项“SOFTWARE \ Microsoft \ jet \ 4.0 \ Engines \ excel”从8编辑为0。