0

我正在使用 Vs 2008。

我们有一个导入 excel 文件的功能,现在 excel 文件可以包含带逗号的数字数据。但是,当查看相同数字列的数据集时,逗号被删除了。

我一直在使用连接字符串:

string ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
            "Data Source=" + "_EXCEL_FILE_NAME_" + ";Extended Properties=\"Excel 8.0; IMEX=1; HDR=YES\""

我尝试了所有扩展属性的组合,但对我没有任何帮助。

我在互联网上搜索过,我了解到这是 Microsoft.jet.oledb 提供商暴露的一种限制。

如果我错了,请纠正我,并为我提供解决此问题的方法。

4

3 回答 3

3

逗号实际上不是数据的一部分 - 它只是在 Excel 中呈现时的数据表示!

如果您在 excel 中有一个字段是数字数据,但您要求它在导出时带有逗号,那么您需要将其转换为其他类型,例如使用前导'技巧的字符串。

于 2011-12-16T09:15:47.290 回答
1

麻烦的是,如果您导入使用逗号作为小数分隔符的小数,并将其导入使用点作为分隔符的系统,则逗号可能会被解释为千位分隔符。

可以在这些 SO 线程中找到解决方案:Herehere

导入数据时,您可能希望通过NumberStyles和明确指定数字格式CultureInfo。这些是特定于文化的,如果您不指定格式,可能会默认为您没有预料到的内容,并导致非常数字的值。

于 2011-12-16T13:10:52.883 回答
0

To solve this issue, every computer where this is used needs to have the following done:

  1. Open Registry Editor
  2. Search for TypeGuessRows
  3. Change it to 0

You should have no more issues after that...

于 2012-01-11T14:18:36.657 回答