我正在使用C#并尝试使用此连接字符串读取CSV
;
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\rajesh.yadava\Desktop\orcad;Extended Properties="Text;HDR=YES;IMEX=1;FMT=Delimited"
这适用于制表符分隔数据。
我想要一个连接字符串,它应该用于制表符分隔以及逗号(,)和管道(|)。
如何为CSV
创建通用连接字符串。
由于 拉杰什
答案 0 :(得分:2)
filehelpers库是一个选项吗?
答案 1 :(得分:1)
我知道这不能回答你的问题,但这是一个警告。
如果您使用的是64位系统,我必须创建自己的阅读器,因为您没有获得正确的驱动程序。
如果您的软件将在64位系统上运行,请确保先测试它并且oledb或odbc驱动程序将存在。
答案 2 :(得分:1)
如果您需要快速顺序访问CSV文件,Fast CSV Reader可以是一个选项。我前段时间在一个项目中使用它取得了巨大的成功。它应该被很好地优化,并且如果需要,还提供缓存版本。此外,它自2005年首次发布(2008-10-09上次更新)以来已多次更新,并通过实施System.Data.IDataReader
支持基本数据绑定。
答案 3 :(得分:0)
以下是网络上讨论此问题的一些链接:
答案 4 :(得分:0)
使用TextFieldParser类是一个选项吗?
http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.fileio.textfieldparser.aspx
答案 5 :(得分:0)
如果没有滚动自定义解决方案,我不确定是否有一种直接支持多个分隔符的方法。 This page建议通过schema.ini,您可以选择:
答案 6 :(得分:0)
class CSVFile extends SplFileObject
{
private $keys;
public function __construct($file)
{
parent::__construct($file);
$this->setFlags(SplFileObject::READ_CSV);
}
public function rewind()
{
parent::rewind();
$this->keys = parent::current();
parent::next();
}
public function current()
{
return array_combine($this->keys, parent::current());
}
public function getKeys()
{
return $this->keys;
}
}
然后使用:
$csv = new CSVFile('exmaple.csv');
你可以使用:
遍历行foreach ($csv as $line)
{