【发布时间】:2015-01-16 17:55:40
【问题描述】:
我基本上需要将存储过程的输出保存到.xls 或.xlsx Excel 文件中。我可以对 csv 做到这一点,但不能对 Excel 做到这一点。有人可以帮忙吗?请看下面的代码
var result = DealingContext.PopulateUnitRebateData(true, Convert.ToDateTime("2015-01-16")).ToList();
if (result.Count > 0)
{
string header = @"""Firm ID"",""AccountNumber"",""Portfolio Name"",""Currency"",""Amount"",""Value Date""";
StringBuilder sb = new StringBuilder();
sb.AppendLine(header);
foreach (var i in result)
{
sb.AppendLine(string.Join(",",
string.Format(@"""{0}""", i.FirmID),
string.Format(@"""{0}""", i.AccountNumber),
string.Format(@"""{0}""", i.PortfolioName),
string.Format(@"""{0}""", i.Currency),
string.Format(@"""{0}""", i.Amount),
string.Format(@"""{0}""", i.ValueDate)));
}
HttpContext context = HttpContext.Current;
context.Response.Write(sb.ToString());
context.Response.ContentType = "application/vnd.ms-excel";
context.Response.AddHeader("Content-Disposition", "attachment; filename=TestData.xls");
context.Response.End();
}
【问题讨论】:
-
它没有保存在 excel 文件中,因为 excel 不是 CSV 的逗号分隔文件,我建议你在 dot net 中寻找用于生成 excel 文件的 OpenXML SDK,它非常简单并且提供你对文件的控制力很强。
标签: asp.net asp.net-mvc asp.net-mvc-4 c#-4.0 c#-3.0