从excel表格加载数据返回DataSet

时间:2023-03-09 20:03:39
从excel表格加载数据返回DataSet
添加命名空间:using System.Data.OleDb;
/// <summary>
/// 从excel表格加载数据返回DataSet
/// </summary>
/// <param name="path">excel路径</param>
/// <param name="sql_Command">查询excel的sql命令,为“”或null默认查询Sheet1表</param>
/// <returns>返回DataSet</returns>
public static DataSet LoadFromExcel(string path,string sql_Command)
{
string strConn;
/*
HDR=NO: 第一行也作为数据行
IMEX=1: 把所有列都做为字符串来读取
*/
strConn = @"Provider=Microsoft.Ace.OleDb.12.0;" + "data source=" + path +
";Extended Properties='Excel 12.0; HDR=NO; IMEX=1'"; //此連接可以操作.xls與.xlsx文件/此連接可以操作.xls與.xlsx文件
OleDbConnection oleConn = new OleDbConnection(strConn);
DataSet ds = new DataSet();
if (sql_Command == null || sql_Command == "")
{
try
{
oleConn.Open();
string sql = "select * from [Sheet1$]";
OleDbDataAdapter adapter = new OleDbDataAdapter(sql, oleConn);
adapter.Fill(ds);
return ds;
}
catch
{
throw new Exception("加载失败!");
}
finally
{
oleConn.Close();
}
}
else
{
oleConn.Open();
OleDbDataAdapter adapter = new OleDbDataAdapter(sql_Command, oleConn);
adapter.Fill(ds);
return ds;
} }