Asp.net mvc 从MVC控制器导出到文本或excel
我已经拥有的:我有控制器代码搅动一些值/计算并将它们发送到视图。现在,我正在查看页面上显示所有结果 我想做的是:按下“导出”按钮,将视图中显示的结果导出到文本或excel文件中 使用:MVC 我有一个示例代码 控制器:Asp.net mvc 从MVC控制器导出到文本或excel,asp.net-mvc,asp.net-mvc-2,export-to-excel,Asp.net Mvc,Asp.net Mvc 2,Export To Excel,我已经拥有的:我有控制器代码搅动一些值/计算并将它们发送到视图。现在,我正在查看页面上显示所有结果 我想做的是:按下“导出”按钮,将视图中显示的结果导出到文本或excel文件中 使用:MVC 我有一个示例代码 控制器: public ActionResult Calculations() { dynamic CalcModel = new ExpandoObject(); int var1 = //Value calc
public ActionResult Calculations()
{
dynamic CalcModel = new ExpandoObject();
int var1 = //Value calculated here
int var2 = //Calculation
CalcModel.Var1= var1;
CalcModel.Var2= var2;
return View(CalcModel);
}
视图:
这将生成一个带有打印值的文本文件。但是如何将每个值打印在单独的行中。。现在,所有值都打印在一条平面线上 这可能会有帮助
或者这个:
environment.NewLine应该这样做:
var builder = new StringBuilder();
//this is probably a loop...
builder.AppendFormat("1,2{0}", Envrionment.NewLine);
builder.AppendFormat("3,4{0}", Envrionment.NewLine);
File(new System.Text.UTF8Encoding().GetBytes(builder.ToString()), "text/csv",
"Report.txt");
编辑:
您也可以尝试\n
string csvText = string.Format("First Value,{0}\nSecond Value,{1}",var1, var2);
File(new System.Text.UTF8Encoding().GetBytes(csvText), "text/csv",
"Report.txt");
我不确定这对我上面的样本是如何起作用的。。你能不能花点时间告诉我如何做我的例子。此外,环境还收到“不在上下文中”错误。。我正在使用系统名称空间..我不是100%确定你在这里要做什么。您是否正在尝试创建一个仅包含一列值的CSV文件?换句话说,在您的示例中,var1和var2是两个不同的记录,还是单个记录的两列?不是CSV文件。。。在代码中我有“Report.txt”。我只是创建了一个文本文件,其中的值是从控制器代码中打印出来的。。。现在,由于我在OP中使用上面的代码,它只打印在一条平线中。我希望var1打印在第一行,var2打印在它下面的新行..您的编辑建议-不起作用。我仍然得到平线条目,而不是两条分开的线。好的。。。它适用于csv文件。不适用于文本文件。那很好。谢谢你的帮助。
var builder = new StringBuilder();
//this is probably a loop...
builder.AppendFormat("1,2{0}", Envrionment.NewLine);
builder.AppendFormat("3,4{0}", Envrionment.NewLine);
File(new System.Text.UTF8Encoding().GetBytes(builder.ToString()), "text/csv",
"Report.txt");
string csvText = string.Format("First Value,{0}\nSecond Value,{1}",var1, var2);
File(new System.Text.UTF8Encoding().GetBytes(csvText), "text/csv",
"Report.txt");