我有一个excel表格,里面第一行是日期,2009全年的,所以估计有接近300列。
然后我想用OleDb来处理,基本语法如下:
private static DataSet ReadExcel(string filePath, string[] sheetNames)
{
// create connectoin.
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties=\"Excel 8.0;HDR=NO;IMEX=1\"";
OleDbConnection conn = new OleDbConnection(strConn);
DataSet ds = new DataSet();
try
{
conn.Open();
foreach (string name in sheetNames)
{
string sql = string.Format("select * from [{0}]", name);
OleDbDataAdapter myCommand = new OleDbDataAdapter(sql, strConn);
myCommand.Fill(ds, name);
}
return ds;
}
catch (Exception ex)
{
return ds;
}
finally
{
conn.Close();
conn.Dispose();
}
}
但是在myCommand.Fill(ds, name);的时候抛出Exception:Too Many Field defined.大家遇到过没?有没有好的解决方案。
我刚开始在想既然是OleDbException,那我该sql语句为select top 100 * from [{0}]试试看的,但是还是抛出该异常。。。
------解决方案--------------------------------------------------------
呵呵,确实是这样,不能用SQL方式。