[英]Exporting data to excel in C# with comma delimited issue
问题不是出口本身,而是出口如何用逗号分隔字段,而我在字段中有逗号。 一切正常,直到到达字符串包含逗号的最后一个字段为止,并对其定界
我的代码:
foreach (var item in jobSortedReportData)
{
sb.Append("\"").Append(item.Title).Append("\",\"").Append(item.Total).Append("\",\"").Append(item.Week6).Append("\",\"").Append(item.Week5).Append("\",\"").Append(item.Week4).Append("\",\"").Append(item.Week3).Append("\",\"").Append(item.Week2).Append("\",").Append(item.Week1).Append(Environment.NewLine);
}
byte[] textBytes2 = Encoding.UTF8.GetBytes(sb.ToString());
生成的输出:
Number 1 Job Search 0 **Bathroom Fitter, Plumbing: 100** Carpenter, Joinery: 99 Carpenter, Joinery: 81 Carpenter, Joinery: 209 Electrician, Domestic Electrical: 495 **Bathroom Fitter Plumbing: 112**
Number 2 Job Search 0 Carpenter, Joinery: 97 Bathroom Fitter, Plumbing: 99 Bathroom Fitter, Plumbing: 79 Bathroom Fitter, Plumbing: 150 Bathroom Fitter, Plumbing: 453 Builder Window Installation: 75
Number 3 Job Search 0 Builder, Window Installation: 85 Building Contractor, Kitchen Fitting: 97 Plumber, Bathroom Fitting: 51 Builder, Window Installation: 134 Heating Engineer, Gas Installation: 451 Bathroom Fitter Bathroom Fitting: 74
原始视图:
"Number 3 Job Search","0","Builder, Window Installation: 85","Building Contractor, Kitchen Fitting: 97","Plumber, Bathroom Fitting: 51","Builder, Window Installation: 134","Heating Engineer, Gas Installation: 451",Bathroom Fitter, Bathroom Fitting: 74
"Number 1 Tradesmen Search","0","Painter & Decorator: 316","Painter & Decorator: 229","Painter & Decorator: 146","Builder: 324","TV Aerials & In-home Entertainment Installer: 1378",Electrician: 247
"Number 2 Tradesmen Search","0","Builder: 171","Builder: 191","Plumber: 114","Plumber: 295","Builder: 551",Builder: 205
"Number 3 Tradesmen Search","0","Plumber: 123","Plumber: 160","Builder: 108","Painter & Decorator: 231","Domestic Electrical: 495",Painter & Decorator: 160
在上面的第三栏中, "Bathroom Fitter, Plumbing: 100"
包含一个,
但是它将整个字符串保留在一个excel字段中。 在最后一列"Bathroom Fitter Plumbing: 112"
,
在Fitter和Plumbing之间的字符串中有一个,
因此现在发生的是this,被视为一个分隔符,因此在excel中将其分成两个单元格,因此我在一个单元中安装了Bathroom Fitter
,在下一个单元中安装了Plumbing:112
。 整个字符串应位于一个单元格中。 它仅在最后一列上执行此操作吗? 请帮助我纠正此问题。
谢谢
很难看到原始的csv,但是要记住,如果CSV字段包含逗号以防止其认为它是列,则需要使用文本限定符。 因此原始CSV应该看起来像这样以获得一致的结果:
“浴室装配工,水暖:100”,下栏,“逗号分隔的栏”。
编辑:现在我已经看到原始的代码不应该在末尾看起来像这样吗? 我不认为您在最后一个字段上添加了文本限定符:
...Append(item.Week2).Append("\",\"").Append(item.Week1).Append("\"").Append(Environment.NewLine);
CSV输出是每个人似乎都要依靠自己的东西之一,但后来不可避免地发现有些情况他们忘记了,并希望他们只是抓住一个图书馆来为他们做。 CsvHelper(https://github.com/JoshClose/CsvHelper)是我使用的一种。 我相信这是一个很常见的解决方案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.