如何在c#上获取所有xls数据(OleDbConnection)

时间:2015-08-18 09:19:08

标签: c# asp.net-mvc oledbconnection

我在C#中有一个从电子表格中获取数据的函数

public DataSet getXlsData(HttpPostedFileBase file, string path)
{

   var fileName = Path.GetFileName(file.FileName);

   oledbConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=2\"");

   oledbConn.Open();
   OleDbCommand cmd = new OleDbCommand();
   OleDbDataAdapter oleda = new OleDbDataAdapter();

   DataSet ds = new DataSet();

   cmd.Connection = oledbConn;
   cmd.CommandType = CommandType.Text;
   cmd.CommandText = "SELECT * FROM [Tasks$]";

   oleda = new OleDbDataAdapter(cmd);
   oleda.Fill(ds);
   oledbConn.Close();

   return ds;

}

当我想调试并查看DataSet上的内容时,除第一行外,所有数据都在。

任何人都可以提供帮助吗?

由于

1 个答案:

答案 0 :(得分:0)

如果使用HDR =是,则第一行应包含标题名称, 否则它将第一行数据作为标题名称,数据填充在第二行的行中。如果是这种情况,则应将其设置为HDR =否。  而不是,

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=2\""

使用此,

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties=\"Excel 8.0;HDR=No;IMEX=2\""