В моем приложении мне нужно экспортировать данные в файл формата CSV.
Я могу сделать это с помощью следующего кода, за исключением случаев, когда столбец является строкой с ведущим нулем suach как: 00254. После экспорта в CSV, я вижу, что он отображается правильно в Блокноте, но при открытии в Excel он теряет весь начальный ноль: Только от 00254 до 254.
Поскольку в некотором столбце с данными можно указывать такие числа, как: количество и количество, поэтому мы не можем преобразовать все столбцы в строку перед экспортом в CSV.
var dsx = new DataSet();
dsx = ProcessData_Export(dtc);
IEnumerable<string> columnNames = dsx.Tables[0].Columns
.Cast<DataColumn>().Select(column => column.ColumnName);
sb.AppendLine(string.Join(",", columnNames));
foreach (DataRow row in dsx.Tables[0].Rows)
{
IEnumerable<string> fields = row.ItemArray
.Select(field => Regex.Replace(field.ToString(), "\r\n", String.Empty));
sb.AppendLine(string.Join(",", fields));
}
File.WriteAllText(pathDesktop + "\\" + exFileName, sb.ToString(), Encoding.UTF8);