c# – CSV实际上是…分号分隔值…(在AZERTY上导出Excel)
发布时间:2020-12-15 23:55:20 所属栏目:百科 来源:网络整理
导读:我在这里有点困惑. 当我使用Excel 2003将工作表导出为CSV时,它实际上使用分号… Col1;Col2;Col3shfdh;dfhdsfhd;fdhsdfhdgsgsd;hdfhd;hdsfhdfsh 现在,当我使用Microsoft驱动程序读取csv时,它会使用逗号并将列表视为一个大列??? 我怀疑Excel是用分号导出的,因
我在这里有点困惑.
当我使用Excel 2003将工作表导出为CSV时,它实际上使用分号… Col1;Col2;Col3 shfdh;dfhdsfhd;fdhsdfh dgsgsd;hdfhd;hdsfhdfsh 现在,当我使用Microsoft驱动程序读取csv时,它会使用逗号并将列表视为一个大列??? 我怀疑Excel是用分号导出的,因为我有一个AZERTY键盘.但是,CSV读取器是否还必须考虑不同的分隔符? 我怎样才能知道合适的分隔符,和/或正确读取csv? public static DataSet ReadCsv(string fileName) { DataSet ds = new DataSet(); string pathName = System.IO.Path.GetDirectoryName(fileName); string file = System.IO.Path.GetFileName(fileName); OleDbConnection excelConnection = new OleDbConnection (@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathName + ";Extended Properties=Text;"); try { OleDbCommand excelCommand = new OleDbCommand(@"SELECT * FROM " + file,excelConnection); OleDbDataAdapter excelAdapter = new OleDbDataAdapter(excelCommand); excelConnection.Open(); excelAdapter.Fill(ds); } catch (Exception exc) { throw exc; } finally { if(excelConnection.State != ConnectionState.Closed ) excelConnection.Close(); } return ds; } 解决方法
一种方法是使用
decent CSV library;允许您指定分隔符的一个:
using (var csvReader = new CsvReader("yourinputfile.csv")) { csvReader.ValueSeparator = ';'; csvReader.ReadHeaderRecord(); while (csvReader.HasMoreRecords) { var record = csvReader.ReadDataRecord(): var col1 = record["Col1"]; var col2 = record["Col2"]; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |