使用OleDbConnection检索具有特殊字符的Excel工作表名称

时间:2011-04-20 23:40:36

标签: .net excel oledbconnection

嘿所有, 我试图使用OleDbConnection从Excel文件中获取工作表名称列表。 (注意:此程序将在服务器上运行,因此无法使用office互操作类)。所以一切都可以正常使用以下代码,并带回工作表名称:

        var dt = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

        foreach (DataRow row in dt.Rows)
        {
            string sheetName = row["TABLE_NAME"].ToString();
        }

但是,如果Excel工作表名称包含点“。”,则以“#”转换。例如,如果excel文件具有以下工作表名称:

Sheet.1
Sheet#1

上面的代码将返回:

"Sheet#1$"
"'Sheet#1$'"

表格名称现在基本相同。变差!!!当按照以下代码从Sheet.1读取数据时:

var adapter = new OleDbDataAdapter("SELECT * FROM ['Sheet.1$']", connectionString);

它实际上会从“表#1”而不是“sheet.1”中读取数据。

任何帮助将不胜感激。

0 个答案:

没有答案