【发布时间】:2011-04-19 15:27:22
【问题描述】:
我正在使用 OLEDB 通过 C# 读取 Excel 工作表。在该列标题中,名称为“Sr.No.”在我的“Sheet1”中。当我将 Excel 工作表数据提取到我的 Datatable 中时,我将“Sr#No#”作为列标题名称而不是原始名称。你能告诉我为什么会这样吗?同样的解决方案是什么。
谢谢。
【问题讨论】:
我正在使用 OLEDB 通过 C# 读取 Excel 工作表。在该列标题中,名称为“Sr.No.”在我的“Sheet1”中。当我将 Excel 工作表数据提取到我的 Datatable 中时,我将“Sr#No#”作为列标题名称而不是原始名称。你能告诉我为什么会这样吗?同样的解决方案是什么。
谢谢。
【问题讨论】:
经过一些测试,我发现 OleDB 可以转换以下字符:
。变成#
!变成_
`变成_
[ 变成 (
] 变成)
所有其他字符都被正确读取。希望这对某人有所帮助。
最好的问候。
【讨论】:
谷歌搜索表明这是 OLEDB 的固有特性,而不是与 Excel 有任何关系 - 它似乎根本不喜欢列名中的句点 (.)。
我的建议是要么解决它 - 它似乎是用 #s 确定性替换 .s - 或者如果可能的话,使用从 C# 读取 Excel 数据的替代方法(搜索此站点以查找替代方法)。
【讨论】: