我已经在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”的字段包含小数。不幸的是,这不起作用。难道我做错了什么?谢谢。
答案 0 :(得分:1)
我认为问题在于CSV文件包含带有点作为小数点分隔符的值,例如12.34
,但是运行此程序的客户端上的区域设置被设置为逗号作为小数点分隔符,对吗? / p>
根据the documentation,您可以在schema.ini文件中指定小数点分隔符,因此请尝试以下操作:
[2175G.csv]
ColNameHeader = True
Format=Delimited(;)
DecimalSymbol=.
col4="x1" Double
答案 1 :(得分:0)
请尝试其他驱动程序
<select id="prodcode" class="form-control" formControlName="prodCode" required>
<option [value]="''">Product Code</option>
<option [ngValue]="product.productId" *ngFor="let product of productData">
{{product.productName}}
</option>
</select>