0

以下のコードを使用して Excel ファイルをロードしようとすると、このエラーが発生します

Microsoft Access データベース エンジンは、オブジェクト 'シート名' を見つけられませんでした。オブジェクトが存在すること、およびその名前とパス名のつづりが正しいことを確認してください。「シート名」がローカル オブジェクトでない場合は、ネットワーク接続を確認するか、サーバー管理者に連絡してください。

シート名が正しいと確信しています。

助言がありますか?

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();
4

2 に答える 2

2

上記のコメントで述べたように、これを試しましたか

string sql = "SELECT * FROM [" + sheetName + "$]";
于 2013-05-30T19:54:27.407 に答える
1
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();
于 2013-05-31T04:52:53.820 に答える