Мне нужно сохранить содержимое файла DataTable
в файл . В DataTable
все в порядке, данные поступают из запроса SQL
. Тем не менее, если я открываю CSV
в Excel
я вижу это:В чем разница между запятой и запятой?
+---------------------+---------------------+------------------------------+------+------+----+
| DisplayName0 | Publisher0 | col3 | col4 | col5 | |
+---------------------+---------------------+------------------------------+------+------+----+
| Dropbox | Dropbox, Inc. | 432 | 415 | 17 | |
| Chef Client v12.4.3 | Chef Software | Inc. <[email protected]>"" | 193 | 180 | 13 |
| Cisco AnyConnect | Cisco Systems, Inc. | 836 | 824 | 12 | |
+---------------------+---------------------+------------------------------+------+------+----+
'Dropbox, Inc.' -> 'Dropbox, Inc.' //this is good
'Cisco Systems, Inc.' -> 'Cisco Systems, Inc.' //this is good too
'"Chef Software, Inc. <[email protected]>"' -> 'Chef Software' and ' Inc. <[email protected]>""' //what happened here?
Мой старый добрый кусок кода для экспорта DataTable
в CSV
является:
System.IO.StreamWriter streamWriter = new System.IO.StreamWriter(dlg3.FileName);
string strHeader = "";
for (int s = 0; s < tbl.Columns.Count; s++)
{
strHeader += "\"" + tbl.Columns[s].ColumnName + "\",";
}
streamWriter.WriteLine(strHeader);
for (int m = 0; m < tbl.Rows.Count; m++)
{
string strRowValue = "";
for (int n = 0; n < tbl.Columns.Count; n++)
{
if (tbl.Rows[m][n].ToString() != "")
{
strRowValue += "\"" + tbl.Rows[m][n] + "\",";
}
else
{
strRowValue += tbl.Rows[m][n] + ",";
}
}
streamWriter.WriteLine(strRowValue);
}
streamWriter.Close();
Таким образом, вопрос, почему запятая dropbox one не «генерирует» новую ячейку, а клиент-шеф-повар делает это?
Вот почему я добавить '" 'до и после каждого значения ячейки на основе этого Excel обычно ускользает все, но теперь – fishmong3r
Пожалуйста, используйте правильный NuGet пакет Csv вместо –
Это может... яснее, если вы включили текст, который генерирует ваша программа (крыса ее, чем ваша интерпретация того, как Excel интерпретирует этот текст). – Richard