通过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)
{
...
}