是否可以使用oledb将大量> 23万条记录的excel数据读取并显示到数据网格中?

问题描述

我有大量excel数据的问题,需要在datagrid中显示,如果数据很小,这段代码可以工作,但对大量数据无效,需要等待很长时间。有什么绝妙的方法可以解决这个问题吗?

代码

        Stopwatch sw1 = Stopwatch.StartNew();
        String path = "D:\\test.xlsb";
        String sheet = "Sheet1";
        String constr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
                        path+
                        ";Extended Properties='Excel 12.0 XML;HDR=YES;';";

        OleDbConnection con = new OleDbConnection(constr);
        OleDbCommand oconn = new OleDbCommand("Select * From [" + sheet + "$]",con);
        try
        {
            con.open();

            OleDbDataAdapter sda = new OleDbDataAdapter(oconn);
            DataTable data = new DataTable();
            sda.Fill(data);
            datagrid1.ItemsSource = (System.Collections.IEnumerable)data.defaultview;
            con.Close();
            sw1.Stop(); 
            Console.WriteLine("Time taken for excel roots: {0} ms",sw1.Elapsed.TotalMilliseconds);
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)