如何读取包含特殊字符“#”的 Excel 工作表名称
本文关键字:Excel 工作 何读取 读取 特殊字符 包含 | 更新日期: 2023-09-27 17:55:39
当我使用 oledb C# 读取 excel 时,它已成功检索数据。但是当工作表名称包含#
时,它不会读取数据。它给出以下错误。
不是有效名称。确保它不包含无效字符或标点符号,并且不会太长。
我猜 Oledb 将#
字符转换为.
.
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);
}
另请注意,如果您错过将表(表)名称放在括号"[]"内,则代码将不会读取工作表