我已经从VS2010中的nugetpackage manager安装了DocumentFormat.OpenXml(版本2.5.5631.0)。我可以看到DLL的引用。我创建了一个包文件夹。但是当我尝试执行方法时:
public override void Render(LocalReport report)
{
this.SetUpParameters(report);
byte[] renderedReport = report.Render("EXCELOPENXML");
this.target.UpdateRenderedReportContent(renderedReport);
}
我收到此错误:
指定的参数超出了有效值的范围。参数名称:格式
当我使用时
report.Render("EXCEL");
我没有收到任何错误。我必须使用EXCELOPENXML生成xlsx excel。
答案 0 :(得分:3)
您引用了哪个版本的Microsoft.ReportViewer.WinForms
?如果它低于11.0,那可能是你的问题。
顺便提一下,Visual Studio(2013)拒绝在“添加引用”对话框中显示版本11.0作为选项。我不明白为什么。我不得不浏览GAC中的程序集:
C:\Windows\assembly\GAC_MSIL\Microsoft.ReportViewer.WinForms\11.0.0.0__89845dcd8080cc91\Microsoft.ReportViewer.WinForms.DLL
执行此操作后,请运行以下方法。您现在应该看到EXCELOPENXML作为选项。
new LocalReport().ListRenderingExtensions();