string FilePath = string.Empty;
public static DataTable ImportExcelToDataTable2(string path)
{
string conStr = string.Format("Provider=Microsoft.ACE.OLEDB.12.0; Data source={0}; Extended Properties=Excel 12.0;", path);
using (OleDbConnection conn = new OleDbConnection(conStr))
{
conn.Open();
//获取所有Sheet的相关信息
DataTable dtSheet = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
//获取第一个 Sheet的名称
string sheetName = dtSheet.Rows[0]["Table_Name"].ToString();
string sql = string.Format("select * from [{0}]", sheetName);
using (OleDbDataAdapter oda = new OleDbDataAdapter(sql, conn))
{
DataTable dt = new DataTable();
oda.Fill(dt);
return dt;
}
}
}
private void btnDisplay_Click_1(object sender, EventArgs e)
{
List<M_Table> objList = new List<M_Table>();
OpenFileDialog openFile = new OpenFileDialog();
openFile.Filter = "所有文件(*.*)|*.*";
if (openFile.ShowDialog() == DialogResult.OK)
{
FilePath = openFile.FileName;
}
else return;//如果没有选择或者其他 直接退出
//调取方法将读取到的Excel的表赋值给DataTable
DataTable dt = ImportExcelToDataTable2(FilePath);
//循环遍历所有的行,将值赋值给List
for (int i = 0; i < dt.Rows.Count; i++)
{
objList.Add(new M_Table
{
M_Name = dt.Rows[i]["厂商"].ToString(),
M_Warehouse = dt.Rows[i]["仓库"].ToString(),
M_brand = dt.Rows[i]["品牌"].ToString(),
M_Code = dt.Rows[i]["料号"].ToString(),
M_CodeName = dt.Rows[i]["名称"].ToString(),
M_Company = dt.Rows[i]["单位"].ToString(),
M_quantity = dt.Rows[i]["数量"].ToString(),
M_UnitPrice = dt.Rows[i]["单价"].ToString(),
M_batch = dt.Rows[i]["批次"].ToString(),
M_Number =Convert.ToInt32( dt.Rows[i]["每箱数"]),
M_MinNumber =Convert.ToInt32( dt.Rows[i]["最小包装数"]),
});
}
dgvM_Table.DataSource = null;
dgvM_Table.AutoGenerateColumns = false;
dgvM_Table.DataSource = objList;
}