使用asp.net读取excel的sheet表名解决办法

使用asp.net读取excel的sheet表名
如题,我在网上找了好多. 比如. 
public static String getExcelSheets(string fileName) {
            OleDbConnection objConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileName + ";Extended Properties=\"Excel 8.0;imex=1;hdr=no\";");
            objConn.Open();
            System.Data.DataTable dt = null;
            dt = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
            String[] excelSheets = new String[dt.Rows.Count];
            int i = 0;
            String result = "";
            foreach (DataRow row in dt.Rows){
               result = row["TABLE_NAME"].ToString();
               i++;
            }
            if (objConn != null) { objConn.Close(); objConn.Dispose(); }
            if (dt != null) { dt.Dispose(); }
            return result;


            /*OleDbConnection oleconn = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;data source=" + fileName + ";Extended Properties=Excel 8.0;Persist Security Info=False");
            oleconn.Open();
            //返回Excel的架构,包括各个sheet表的名称,类型,创建时间和修改时间等             
            DataTable dtSheetName = oleconn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" });
            //包含excel中表名的字符串数组             
            string[] strTableNames = new string[dtSheetName.Rows.Count];
            for (int k = 0; k < dtSheetName.Rows.Count; k++){
                strTableNames[k] = dtSheetName.Rows[k]["TABLE_NAME"].ToString();
            }
            return strTableNames; */
        }

运行的时候无论用哪一个连接字符串都是报这个错. 
System.ArgumentException”类型的异常在 System.Data.dll 中发生,但未在用户代码中进行处理
其他信息: 从索引 47 处开始,初始化字符串的格式不符合规范。

求解.
------解决思路----------------------
换用NPOI吧,一半的代码都够了
------解决思路----------------------
Excel2000-2003:
OleDbConnection ExcelConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + FilePath + "; Extended Properties='Excel 12.0;HDR=YES;IMEX=1'");

Excel2007:
OleDbConnection ExcelConn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" + FilePath + "; Extended Properties='Excel 12.0 Xml;HDR=YES;IMEX=1'"); 

------解决思路----------------------
引用:
我是excel2007的,但你给的这个连接字符串还是连接不上, 还是报之前说的那个错误. 

你有引用Microsoft.ACE.OLEDB.12.0吗
------解决思路----------------------
使用asp.net读取excel的sheet表名解决办法
请用Aspose.Cell或NPIO
------解决思路----------------------
引用:
using Microsoft.ACE.OLEDB.12.0 这句话报错, Microsoft里面没有ACE

我错了,不需要引用,你把完整的链接字符串发出来看下,包括文件名在内的