从Excel到dataGridView的数据

时间:2011-11-22 17:44:24

标签: c# winforms excel datagridview

我有一个奇怪的问题。例如,我加载了一个包含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;

1 个答案:

答案 0 :(得分:0)

这是OLE Jet提供程序的限制,通常是由扫描的行数来猜测生成该字段的时间。您可以编辑注册表以扩展它,但如果您有足够长的电子表格,则会受到性能影响。

如果这确实是问题所在,那么您需要将注册表项“SOFTWARE \ Microsoft \ jet \ 4.0 \ Engines \ excel”从8编辑为0。