Reputation: 361
I am using a data table for storing data.
I am exporting the data from data table to CSV file.
Sometimes there may be values containing comma(,
) so the values are not exported correctly.
Consider the value is "9,11,32"
. I have to export as such.
But when I do the first column conatins 9
then in next column 11
.
I want to display 9,11,32
in the same column in the CSV file. How do I do that?
Upvotes: 33
Views: 70855
Reputation: 5347
Fields with embedded commas
must be delimited with double-quote characters.
fields:
abc, xyz
pqr
csv version:
"abc, xyz" , pqr
Fields that contain double quote
characters must be surounded by double-quotes, and the embedded double-quotes must each be represented by a pair of consecutive double quotes.
field:
Welcome to "My World"
csv version:
"Welcome to ""My World"""
Upvotes: 19
Reputation: 566
If you have a comma in the data you need to put in a csv the https://www.rfc-editor.org/rfc/rfc4180 says to use quotations as:
"123,56","A dog, cat and a frog"
Upvotes: 7
Reputation: 31
Put Value in double quotes.
string ValueToEscape = "a,b";
"\"" + ValueToEscape + "\""
CSV Output = a,b
Upvotes: 3
Reputation: 2439
Simply put your data inside the backslash like this: "\"" + yourdata + "\"". Take a look on the example below:
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"));
In the example: Your data2 may contains comma ","
Upvotes: 33
Reputation: 370
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));
}
}
Upvotes: 4
Reputation: 219
Write Comma separated value between double quote without space to create csv with single column for comaa separated values.
Ex. I have two columns Code & Description With Values Code01 & Val1,Val2,Val3. To create csv with given data write below line in notepad and save it with csv extension.
Code,Description
Code01,"Val1,Val2,Val3"
Upvotes: 2