Excel通过c#加载

尝试使用下面的代码加载一个Excel文件给我这个错误

Microsoft Access数据库引擎找不到对象的“工作表名称”。 确保对象存在,并且正确拼写其名称和path名称。 如果“工作表名称”不是本地对象,请检查您的networking连接或联系服务器pipe理员。

我确定图纸名称是正确的。

有什么build议么?

if (strFile.Trim().EndsWith(".xlsx")) { strConnectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0 Xml;HDR=YES;IMEX=1\";", strFile); } else if (strFile.Trim().EndsWith(".xls")) { strConnectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\";", strFile); } OleDbConnection SQLConn = new OleDbConnection(strConnectionString); SQLConn.Open(); OleDbDataAdapter SQLAdapter = new OleDbDataAdapter(); string sql = "SELECT * FROM [" + sheetName + "]"; OleDbCommand selectCMD = new OleDbCommand(sql, SQLConn); SQLAdapter.SelectCommand = selectCMD; ///error in this line SQLAdapter.Fill(dtXLS); SQLConn.Close(); 

正如上面评论中提到的,你是否尝试过这一点

 string sql = "SELECT * FROM [" + sheetName + "$]"; 
 DataSet ds = new DataSet(); if (strFile.Trim().EndsWith(".xlsx")) { strConnectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0 Xml;HDR=YES;IMEX=1\";", strFile); } else if (strFile.Trim().EndsWith(".xls")) { strConnectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\";", strFile); } OleDbConnection objXConn = new OleDbConnection(strConnectionString); objXConn.Open(); OleDbCommand objCommand = new OleDbCommand("SELECT * FROM [" + SheetName + "$]", objXConn); OleDbDataAdapter adp = new OleDbDataAdapter(objCommand); adp.Fill(ds); objXConn.Close();