日期:2014-05-19  浏览次数:20535 次

通过OleDb读取excel数据时遇到的小问题
当Excel里面的Sheet名为Sheet1的时候,可以用以下这个命令连接上Excel,但要是Sheet名不一样,那就惨了,会找不到数据表.

OleDbCommand   myOleDbCommand=new   OleDbCommand( "SELECT   *   FROM   [Sheet1$] ",myOleDbConnection);

请教各位大侠,怎么样才能知道一个Excel文件里有几个Sheet,每个Sheet的名字分别是什么呢?这样的话就不会有这样的出错了~~

在线等,请高手帮下忙~~

------解决方案--------------------
DataTable dt = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
------解决方案--------------------
OleDbConnection objConn = null;
DataTable dt = null;

try
{
string connString =
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\Readme.xls;Extended Properties=Excel 8.0; ";
objConn = new OleDbConnection(connString);
objConn.Open();
dt = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

if (dt != null)
{
string[] sheetName = new string[dt.Rows.Count];
int i = 0;
foreach (DataRow row in dt.Rows)
{
sheetName[i] = row[ "TABLE_NAME "].ToString();
i++;
}

}
}
catch(Exception e1)
{
...
}