如何读取包含特殊字符“#”的 Excel 工作表名称

本文关键字:Excel 工作 何读取 读取 特殊字符 包含 | 更新日期: 2023-09-27 17:55:39

当我使用 oledb C# 读取 excel 时,它已成功检索数据。但是当工作表名称包含#时,它不会读取数据。它给出以下错误。

不是有效名称。确保它不包含无效字符或标点符号,并且不会太长。

我猜 Oledb 将#字符转换为..

如何读取包含特殊字符“#”的 Excel 工作表名称

OpenXML是最好的出路。您的问题不仅会在有"#"时才发生,而是发生在任何重命名的工作表上。

Karthik,

您能否发布您的代码以便我们检查?

我尝试跟随,效果很好。

DataTable dtSheet = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
foreach (DataRow dr in dtSheet.Rows)
            {
                string sheetName = dr["TABLE_NAME"].ToString();
               cmd.CommandText = "SELECT * FROM [" + sheetName + "]";
                DataTable dt = new DataTable();
                dt.TableName = sheetName;
                OleDbDataAdapter da = new OleDbDataAdapter(cmd);
                da.Fill(dt);
                ds.Tables.Add(dt);
            }

另请注意,如果您错过将表(表)名称放在括号"[]"内,则代码将不会读取工作表