Я использую таблицу данных для хранения данных.
Я экспортирую данные из таблицы данных в файл CSV.
Иногда могут быть значения, содержащие запятую (,
), поэтому значения не экспортируются правильно.
Например
Рассмотрим значение "9,11,32"
. Я должен экспортировать как таковой.
Но когда я делаю первый столбец conatins 9
то в следующем столбце 11
.
Я хочу отобразить 9,11,32
в том же столбце в файле CSV. Как я могу это сделать?
Ответ 1
Просто поместите ваши данные в обратную косую черту следующим образом: "\" "+ yourdata +"\"". Посмотрите на пример ниже:
StringWriter csv = new StringWriter();
// Generate header of the CSV file
csv.WriteLine(string.Format("{0},{1}", "Header 1", "Header 2"));
// Generate content of the CSV file
foreach (var item in YourListData)
{
csv.WriteLine(string.Format("{0},{1}", item.Data1, "\"" + item.Data2 + "\""));
}
return File(new System.Text.UTF8Encoding().GetBytes(csv.ToString()), "application/csv", string.Format("{0}{1}", "YourFileName", ".csv"));
В примере: Ваши данные2 могут содержать запятую ","
Ответ 2
-
Поля со embedded commas
должны быть разделены двойными embedded commas
.
поля:
-
abc, xyz
-
pqr
CSV версия:
"abc, xyz" , pqr
-
Поля, содержащие символы double quote
должны быть окружены двойными кавычками, а каждая из встроенных двойных кавычек должна быть представлена парой последовательных двойных кавычек.
поле:
Welcome to "My World"
CSV версия:
"Welcome to ""My World"""
Ответ 3
Если у вас есть запятая в данных, вы должны поместить в CSV-код, который http://tools.ietf.org/html/rfc4180 говорит использовать цитаты как:
"123,56","A dog, cat and a frog"
Ответ 4
StringBuilder sb = new StringBuilder();
foreach (DataColumn col in dt.Columns)
{
if (col.ColumnName.Contains(","))
{
sb.Append(String.Format("\"{0}\",", col.ColumnName));
}
else
{
sb.Append(String.Format("{0},", col.ColumnName));
}
}
Ответ 5
Запишите разделенное запятыми значение в двойных кавычках без пробелов, чтобы создать CSV с одним столбцом для значений, разделенных запятыми.
Ex. У меня есть два столбца Код и описание со значениями Code01 & Val1, Val2, Val3. Чтобы создать CSV с данными данными, напишите в блокноте строку ниже и сохраните ее с расширением CSV.
Code,Description
Code01,"Val1,Val2,Val3"
Ответ 6
Поместите значение в двойные кавычки.
string ValueToEscape = "a,b";
"\"" + ValueToEscape + "\""
Выход CSV = a, b