gpt4 book ai didi

excel - 在 CSV 文件中读取问题。 + 和 - 被读取为 0 的字符

转载 作者:行者123 更新时间:2023-12-04 22:01:54 26 4
gpt4 key购买 nike

我遇到了一个相当奇怪的问题,将使用 Microsoft.ACE.OLEDB.12.0 引擎读取一个小的 csv 文件。

    Dim cN As ADODB.Connection
Dim RS As ADODB.Recordset
Set cN = New ADODB.Connection
Set RS = New ADODB.Recordset
cN.Open ("Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & myPath & ";" & _
"Extended Properties=""Text;HDR=NO;FMT=CSVDelimited""")
RS.ActiveConnection = cN
RS.Source = "select * from " & myfile
RS.Open

当调用 RS.Fields(7) 应该是“+”或“-”时,它返回的值是 0?

我无法控制给定的 csv 文件,因此我无法将“+”或“-”字符更改为其他字符。

最佳答案

ACE是这种东西的野兽。与将字段类型作为其元数据的一部分的普通数据库不同,CSV 只是数据。因此,ACE 必须对数据类型做出决定。在您的情况下,ACE 决定这是一个数字,因为它以 + 开头或 - .如果我没记错的话,ACE 和它的 JET 前身只分析前 8 条记录来确定字段类型。

不过,有两种方法可以解决这个问题。

  • 您可以使用 schema.ini 文件。基本上这是一个名为 schema.ini 的文本文件。您只需将数据保存在与您连接的数据相同的文件夹中。如果文件存在,ACE 将自动使用该文件。 Here's some info about how to build it (你可以用谷歌搜索并获得大量示例)。
  • 这是创可贴的方法,有时比 schema.ini 更容易,具体取决于您的情况。由于 ACE 仅分析 CSV 的前 8 条记录以确定字段类型,因此您只需在文件顶部插入具有确定字段类型的 8 条新记录。例如,您的字段包含 +-只需粘贴一个像 S 这样的字符.然后 ACE 将看到这是一个非数字字段并将其视为字符串。 You can see here how to prepend data to an existing text file using the filesystemobject (和谷歌了解更多信息,这是非常有用的东西)
  • 关于excel - 在 CSV 文件中读取问题。 + 和 - 被读取为 0 的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33126400/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com