Я немного запутался здесь.
Когда я использую Excel 2003 для экспорта листа в CSV, он фактически использует точки с запятой ...
Col1;Col2;Col3
shfdh;dfhdsfhd;fdhsdfh
dgsgsd;hdfhd;hdsfhdfsh
Теперь, когда я читаю csv с помощью драйверов Microsoft, он ожидает запятую и видит список как один большой столбец ???
Я подозреваю, что 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;
}