新建一个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;
}
}
下面是效果图:
差不多就是这样了,如果有什么不对的地方忘各位前辈指教。