SSRS导出到xlsx破?

我有报告,我想只使用一个链接来呈现优秀。 为了做到这一点,我有一个页面(实际上是Web应用程序),它使用ReportViewer来select参数,然后使用下面的一段代码截取渲染阶段:

protected void ReportViewer_SubmittingParameterValues(object sender, Microsoft.Reporting.WebForms.ReportParametersEventArgs e) { // if (e.AutoSubmit == false) { // Only when default no parameters are set ReportViewer.ServerReport.SetParameters(e.Parameters); Session["Output"] = ReportViewer.ServerReport.Render("EXCELOPENXML"); DateTime rendertime = DateTime.Now.ToUniversalTime(); // get the current time so we can add the timestamp to the file name Session["Rendertime"] = rendertime.ToString("yyyy-MM-ddTHHmmss"); e.Cancel = true; // holds the rendering to the reportviewer webform element } } 

并在稍后将其发送给用户。

但是,在使用旧的Excel格式(使用ReportViewer.ServerReport.Render("Excel") )的情况下,渲染效果很好,但是对较新的EXCELOPENXML文件格式的渲染则会传递Excel 2013所说的文件已损坏的文件。

当我让Excel修复文件后,除了在布局上有所不同之外,我无法真正看到文件内容的任何区别。 但是,我不能提供一个破坏的应用程序,所以我必须使其工作。 用户不会接受这个输出。 我们确实需要更新的文件格式,因为我们的报告产生大量的行。

有没有人知道这是一个报告查看器中的错误,还是我在这里做错了吗? 有谁知道一个修复?

答案是,如果你也在为此而苦恼的话,会话的最大尺寸是有限的,导出不适合会话variables。