excel - 从csv文件中读取ADODB中的小数点选择
问题描述
我在 Excel VBA 中创建了带有 ADODB 连接的用户公式,以从 csv 文件中读取字段。一切都很好,但有一件事:当字段有小数时(小数字符是“.”),连接的结果是没有点的整个数字。例如,如果该字段包含 10.38,则结果将为 1038。
.csv 文件的分隔符是“;”,我尝试了 schema.ini 方法,为包含小数的特定字段指定分隔符和数据类型。
相关的vba代码:
Dim xlcon As ADODB.Connection
Dim xlrs As ADODB.Recordset
Set xlcon = New ADODB.Connection
Set xlrs = New ADODB.Recordset
xlcon.Provider = "Microsoft.Jet.OLEDB.4.0"
xlcon.ConnectionString = "Data Source=" & currentDataFilePath & ";" & "Extended Properties=""text;HDR=Yes;"""
xlcon.Open
MyQuery = "SELECT " & myep & " AS DATO FROM [" & currentDataFileName & ".csv] WHERE ENT=" & ent & " AND FECHA='" & myfc & "'"
On Error GoTo misErrores
Set xlrs = xlcon.Execute(MyQuery)
resultado = xlrs.Fields(0)
xlrs.Close
Set xlrs = Nothing
xlcon.Close
Set xlcon = Nothing
Ep = resultado
schema.ini 文件:
[2175G.csv]
ColNameHeader = True
Format=Delimited(;)
col4="x1" Double
该文件有大约 100 个不同的字段,但我认为我必须只为包含小数的字段指定类型。在这种情况下,只有位于第 4 位的名为“x1”的字段包含小数。不幸的是,这不起作用。难道我做错了什么?谢谢。
解决方案
我认为问题在于 CSV 文件包含带有点作为小数分隔符的值,例如12.34
,但是运行此程序的客户端上的区域设置设置为逗号作为小数分隔符,对吗?
根据文档,您可以在 schema.ini 文件中指定小数分隔符,因此请尝试以下操作:
[2175G.csv]
ColNameHeader = True
Format=Delimited(;)
DecimalSymbol=.
col4="x1" Double
推荐阅读
- python - Pandas 交叉表查询中的错误在哪里
- flutter - 如何在 Visual Studio Code 终端中运行 Dart 代码?
- c# - 在子方法中将枚举转换为字符串
- react-native - 添加代码推送键反应原生android
- swiftui - NavigationView 内 ZStack 内的 SwiftUI 列表
- javascript - Bootstrap 单选按钮结果
- arrays - 根据 swift 中的过滤器将列表分成两部分
- android - gradle kts 文件中的 applyNativeModulesAppBuildGradle(project) 和 applyNativeModulesSettingsGradle
- java - 并发登录和并发会话有什么区别?
- python - 西班牙语文本的正则表达式解析器