我需要读取各种数据文件类型,例如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问题都至少有几年了,有没有人有关于这个问题的最新信息?
答案 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数据库引擎驱动程序尝试您的代码。由于它比较新,可能它有更好的分隔符配置处理。