gpt4 book ai didi

C# 导出列格式不正确的 csv (Excel)

转载 作者:太空宇宙 更新时间:2023-11-03 18:29:47 24 4
gpt4 key购买 nike

我正在将一个充满数据的 GridView 导出到一个 CSV 文件,其中一列包含一个长达 18 位非 float 的优惠券编号。该号码需要在 Excel 中显示为他们的完整号码 csv 文件 。当我在 Excel 中打开 csv 文件时,例如,720137994699937608 和其他显示为:

enter image description here

然后,当我调整列大小时或将列类型更改为编号时,优惠券编号显示为:

enter image description here


您会注意到 excel 将优惠券编号更改为 float ,现在优惠券编号中的数字已在末尾替换为零。这很糟糕。

这是我的导出代码:

protected void btnExport_Click(object sender, EventArgs e)
{
Response.Clear();
Response.Buffer = true;
Response.AddHeader("content-disposition",
"attachment;filename=Reports All Prizes.csv");
Response.Charset = "";
Response.ContentType = "csv";

StringBuilder sb = new StringBuilder();

sb.Append("FirstName" + ',');
sb.Append("LastName" + ',');
sb.Append("CouponNumber" + ',');
string[] splitColumns = sb.ToString().Split(new Char[] { ',' });
//append new line
sb.Append("\r\n");

for (int i = 0; i < gvReportsAllPrizes.Rows.Count; i++)
{
foreach (string column in splitColumns)
{
if (column == "FirstName")
{
//capatilize first letter.
string first = Globals.ReplaceHTML(gvReportsAllPrizes.Rows[i].Cells[1].Text.Trim());
if (string.IsNullOrEmpty(first))
{
first = "";
}
if (!string.IsNullOrEmpty(first))
{
first = first.ToLower();//convert to lowercase before uppercasing the first letter.
first = "\"" + first.First().ToString().ToUpper() + String.Join("", first.Skip(1)) +
"\"";
}
sb.Append(first + ',');
}
else if (column == "LastName")
{
//capatilize first letter.
string last = Globals.ReplaceHTML(gvReportsAllPrizes.Rows[i].Cells[2].Text.Trim());
if (string.IsNullOrEmpty(last))
{
last = "";
}
if (!string.IsNullOrEmpty(last))
{
last = last.ToLower();//convert to lowercase before uppercasing the first letter.
last = "\"" + last.First().ToString().ToUpper() + String.Join("", last.Skip(1)) +
"\"";
}
sb.Append(last + ',');
}
else if (column == "CouponNumber")
{
string cn = Globals.ReplaceHTML(gvReportsAllPrizes.Rows[i].Cells[8].Text.Trim());
if (string.IsNullOrEmpty(cn))
{
cn = "";
}
if (!string.IsNullOrEmpty(cn))
{
sb.Append("\"" + cn + "\"" + ',');
}
else
{
sb.Append(cn + ',');
}
}

}
//append new line
sb.Append("\r\n");
}
Response.Output.Write(sb.ToString());
Response.Flush();
Response.End();
}

public static string ReplaceHTML(string strInput)
{
strInput = strInput.Replace("&quot;", "\"" + "\"");
strInput = strInput.Replace("&amp;", "&");
strInput = strInput.Replace("&nbsp;", string.Empty);
strInput = strInput.Replace("''", "'");
return strInput.Replace("&#39;", "'").Trim();
}

原始 txt 文件 csv:

名字,姓氏,优惠券号码,“第一个”,“最后一个”,“720137994699937608”

最佳答案

您可以像这样包装每个值:

"=""DATA HERE"""

例如:

Column1,Column2
"=""1231231231231323121321""","=""123"""

显然它在 csv 文件中并不漂亮,但它可以根据需要导入到 excel 中。

关于C# 导出列格式不正确的 csv (Excel),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24944060/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com