【问题标题】:Data from Excel to dataGridView从 Excel 到 dataGridView 的数据
【发布时间】:2011-11-22 17:44:23
【问题描述】:

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

【问题讨论】:

  • 如果您包括如何将 .xls 文件与 GridView 关联起来会有所帮助。你在使用 ODBC 吗? COM互操作?还是别的什么?

标签: c# winforms excel datagridview


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多