微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

.NET Core-StringBuilder-下载的文件中缺少字符

如何解决.NET Core-StringBuilder-下载的文件中缺少字符

我将某些数据导出到angular / .NET Core应用上的csv

a ;在第一个csv字段之后丢失,而另一个;在那儿

和其他字段中使用的说明相同

StringBuilder sb = new StringBuilder();
sb.Append("Id; Civility;Name; Email; Phone;");
sb.Append("\r\n");

for (int i = 0; i < partners.Count; i++)
{
    Partner p = partners[i];
    sb.Append('"' + p.Id + '"' + ';');

    sb.Append('"' +(p.Manager.Civility==0?"Mr":"Mme") +'"'+ ';');
    sb.Append('"' + p.Manager.FirstName+" "+ p.Manager.LastName + '"' + ';');
    ...

这是将其发送到Web客户端进行下载的部分

DateTime localDate = DateTime.Now;
var date = localDate.ToString("MM_dd_yy_HH_mm_ss");

var filename = "Partners_" + date + ".csv";
Response.Headers.Add("x-file-name",filename);
Response.Headers.Add("Access-Control-Expose-Headers","x-file-name");
return File(Encoding.UTF8.GetBytes(sb.ToString()),"text/csv",filename);
  • 为什么是;数据中缺少?
  • 显然,id字段也缺少引号

enter image description here

感谢您为此付出的时间

解决方法

之所以会这样,是因为将intchar相加会产生int作为结果。

var x = 'a' + 5; 
//yields 102 as 'a' is implicitly cast from char to int,where 'a' holds the value of 97

您可以通过使用intToString()转换为字符串来解决它,也可以使用字符串代替字符,例如

sb.Append("\"" + p.Id + "\";"); //the " is escaped using \

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。