说明
我在MVC中尝试了以下代码并收到“当使用自定义TextWriter时,OutputStream不可用。”。我按照URL http://blog.maartenballiauw.be/post/2008/05/ASPNET-MVC-custom-ActionResult.aspx中给出的解决方案。但我的问题没有解决。
请帮我解决这个问题..
代码:
string json = e.ExtraParams["GridData"].ToString();
StoreSubmitDataEventArgs eSubmit = new StoreSubmitDataEventArgs(json, null);
XmlNode xml = eSubmit.Xml;
this.Response.Clear();
this.Response.ContentType = "application/vnd.ms-excel";
this.Response.AddHeader("Content-Disposition", "attachment;
filename=submittedData.xls");
XslCompiledTransform xtExcel = new XslCompiledTransform();
xtExcel.Load(Server.MapPath("Excel/XSLStyleSheet/Example2.xsl"));
xtExcel.Transform(xml, null, this.Response.OutputStream);
this.Response.End();
错误:
2>'/'应用程序中的服务器错误。使用自定义TextWriter时,OutputStream不可用。 描述:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪,以获取有关错误及其在代码中的起源位置的更多信息。
异常详细信息:System.Web.HttpException:使用自定义TextWriter时,OutputStream不可用。
来源错误:
第85行:XslCompiledTransform xtExcel = new XslCompiledTransform();
第86行:xtExcel.Load(Server.MapPath(“Excel / XSLStyleSheet / Example2.xsl”));
第87行:xtExcel.Transform(xml,null,this.Response.OutputStream); < ============== ERROR LINE
第88行:this.Response.End();
第89行:}
答案 0 :(得分:1)
@ Khalid的建议很好。如果你真的想写入Excel XML,那么我可以用ClosedXML library来做好结果。
答案 1 :(得分:0)
这可能听起来像一个简单的解决方案,但为什么不将数据输出为CSV格式。 Excel在打开CSV电子表格时没有任何问题。