C# WPF读取Excel数据并把数据绑定到DataGrid中

新建一个WPF项目:

建立好了打开MainWindow.cs页面

首先读取Excel数据,如下所示:  

public DataTable GetData(string Path)     //写一个方法
 {
        string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + Path + ";" + "Extended Properties=Excel 12.0;";      //连接语句,读取文件路劲
        string strExcel = "select * from [Sheet1$]";                                   //查询Excel表名,默认是Sheet1
        OleDbConnection ole = new OleDbConnection(strConn);      
        ole.Open();                                                                                          //打开连接
         DataTable schemaTable = new DataTable();                             
         OleDbDataAdapter odp = new OleDbDataAdapter(strExcel, strConn);      
         odp.Fill(schemaTable);
         ole.Close();
         return schemaTable;
  }

然后在Loaded事件里面调用上面的方法,如下:

List<string> list = new List<string>();

void MainWindow_Loaded(object sender, RoutedEventArgs e)
  {
        DataTable dt = GetData("E:\\test.xls");                         //调用GetData方发写上Excel文件所在的路径,这样就能获取到Excel表里面的数据了

        然后我们用个集合把读取到数据添加进去

        for(int i = 0;i<dt.Rows.Count;i++)        
        {
            list.Add(dt.Rows[i][3].ToString());     //这里就把读取的数据添加到集合了

         }

    }

下面调试看下,如下图:


上面已经知道如何读取Excel表的数据了并也知道如何把Excel数据添加到集合里面了

下面再来把Excel数据绑定到DataGrid中,如下:

首先我们新建一个类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 读取Execl表
{
    class Users
    {
        public int id { get; set; }          //用户id
        public string name { get; set; }  //用户姓名
        public string sex { get; set; }   //性别
        public int age { get; set; }        //年龄
        public string address { get; set; }     //地址
    }
}

下面同样是在Loaded事件里面写上绑定代码,如下所示:

      void MainWindow_Loaded(object sender, RoutedEventArgs e)
        {
            DataTable dt = GetData("E:\\test.xls");
            if (dt.Rows.Count > 0)
            {
                List<Users> lists = new List<Users>();      
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    Users u = new Users();
                    u.id = Convert.ToInt32(dt.Rows[i][0]);       
                    u.age = Convert.ToInt32(dt.Rows[i][1]);    
                    u.name = dt.Rows[i][3].ToString();             
                    u.sex = dt.Rows[i][2].ToString();                  
                    u.address = dt.Rows[i][4].ToString();        
                    lists.Add(u);
                }
                datagrid.ItemsSource = lists;
            }

        }

下面是效果图:


差不多就是这样了,如果有什么不对的地方忘各位前辈指教。

  • 1
    点赞
  • 31
    收藏
  • 打赏
    打赏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:编程工作室 设计师:CSDN官方博客 返回首页
评论 12

打赏作者

Struggle_hardllz

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值