gpt4 book ai didi

excel - 如何使用 VBA 使用 @ 作为分隔符导入 csv 文件

转载 作者:行者123 更新时间:2023-12-02 07:45:57 26 4
gpt4 key购买 nike

我正在尝试使用 ADODB 通过 VBA 从 Excel 中的 csv 文件加载数据。
我有一个返回 Connection 对象的函数。

Private Function OpenConnection(dataSource As String) As ADODB.Connection
Set OpenConnection = CreateObject("ADODB.Connection")

With OpenConnection
.ConnectionTimeout = 5
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dataSource & ";" & _
"Extended Properties=""Text;HDR=YES;FMT=Delimited(,)"";Persist Security Info=False"

Debug.Print "trying to connect: " & .ConnectionString
.Open
End With
End Function

然后我只打印数据。

Public Sub Test_Import()
Dim conn As ADODB.connection, records As ADODB.Recordset

Set connection = OpenConnection(foldername)
Set records = connection.Execute("Select * from data.txt")

Debug.Print records.Fields(0)
End Sub

如果我使用逗号,它工作正常,但最终我将不得不使用一个由 '@' 符号分隔的文件,并且我无法使用 ','< 转换为该文件/strong> 因为缺少写入权限。
不幸的是,在其他地方复制和更改文件也不是一个选择。

现在,我在函数 OpenConnection 中将 FMT=Delimited(,) 更改为 FMT=Delimited(@),而不是返回第一个列值a1,返回整行a1@b1@c1

不支持'@'作为分隔字符串吗?还是我错过了什么?

最佳答案

感谢@SiddharthRout 提供的解决方案以及 a thread at windows dev center 的链接.

问题是在连接字符串中无法设置分隔字符串,而只能指定使用特定字符分隔文件。 FMT=Delimited(@) 的处理方式与 FMT=DelimitedFMT=Delimited(,) 相同。

我必须在包含 csv 文件 (data.txt) 的文件夹中创建一个文件 schema.ini,我必须在其中输入:

[data.txt]
Format = Delimited(@)

schema.ini 文件将被解析,分隔符被正确读取,一切正常(只要我不更改任何文件名)。

我还发现了another source at msdn它解释了如何设置分隔字符串(使用注册表或提到的 schema.ini),并且还包括制表位和固定长度分隔文件。

关于excel - 如何使用 VBA 使用 @ 作为分隔符导入 csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21525951/

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