OleDb制表符分隔文件的连接字符串

时间:2017-11-08 00:29:44

标签: oledb oledbconnection

我需要读取各种数据文件类型,例如xlsx,csv,txt和mdb,我想使用OleDB连接,以便读取文件的过程是相同的,只需使用不同的连接串。但是,OleDB忽略连接字符串中的分隔符,例如以下内容,只读取逗号分隔。

Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Text;HDR=Yes;Delimited(\t)';
Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Text;HDR=Yes;FMT=TabDelimited';

我更愿意让OleDB引擎完成工作,而不是自己解析制表符分隔的文件。

有几个与此相关的StackOverflow问题,解决方案通常是在同一目录中创建.ini文件,但有时我的用户没有对该文件夹的写入权限。看到所有类似于我的StackOverflow问题都至少有几年了,有没有人有关于这个问题的最新信息?

1 个答案:

答案 0 :(得分:0)

这就是我使用|分隔符来使用OleDB读取| - 分隔的.csv或.txt文件的方式,但是,我使用的是ACE引擎并使用C#构建连接字符串:

connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Path.GetDirectoryName(catalogFile) + ";Extended Properties='text;HDR=YES;FMT=Delimited(" + (char)124 + ")'";

(char)124代表|的ASCII码。知道TAB的ASCII代码是9,您可以尝试在连接字符串中使用它:

...;Extended Properties='text;HDR=YES;FMT=Delimited(" + (char)9 + ")'";

尝试上面的代码段,并使用MS Access数据库引擎驱动程序尝试您的代码。由于它比较新,可能它有更好的分隔符配置处理。