Excel OleDb C# - 如果工作表具有特殊字符,则无法选择范围

时间:2016-02-16 23:23:53

标签: c# excel oledb oledbcommand

从excel中的工作簿中读取信息时,我遇到了麻烦,其中包含工作表名称中的“#”。我可以选择整个工作表,但不能选择工作表中的范围。

代码:

using (OleDbConnection conn = new OleDbConnection())
        {
            DataTable dt = new DataTable();
            string Import_FileName = "C:/TestExcel/TestWorkbook.xlsm";
            conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Import_FileName + ";" + "Extended Properties='Excel 12.0 Xml;HDR=YES;'";
            using (OleDbCommand comm = new OleDbCommand())
            {
                comm.CommandText = "Select * from [Sheet #1$A1:A22]";

                comm.Connection = conn;

                using (OleDbDataAdapter da = new OleDbDataAdapter())
                {
                    da.SelectCommand = comm;
                    da.Fill(dt);
                }

            }
        }

以下查询工作正常。

comm.CommandText = "Select * from [Sheet #1$]";
comm.CommandText = "Select * from [Sheet2$A1:A22]";

我收到以下异常,说它无法找到有问题的表。

The Microsoft Office Access database engine could not find the object 'Sheet .1$A1:A22'. 

0 个答案:

没有答案