如何在asp.net中将RDLC报告导出为.xlsx格式?

在rdlc报告中,我想导出rdlc报告为excel格式2007即.xlsx格式。 我写了下面的代码来获得这样的输出。 但系统生成.xls格式。 请帮助我在这一点上。

private void PopulateReport(List<OrderDetail> objectList, string datasetName, string reportPath, out string mimeType, out byte[] renderedBytes, decimal fileWidth, decimal fileHeight) { LocalReport localReport = new LocalReport(); localReport.ReportPath = Server.MapPath(reportPath); ReportDataSource reportDataSource = new ReportDataSource(datasetName, objectList); localReport.DataSources.Add(reportDataSource); //localReport.SetParameters(new ReportParameter("pm", "", false)); string reportType = "excel"; mimeType = string.Empty; string encoding = string.Empty; string fileNameExtension = string.Empty; //The DeviceInfo settings should be changed based on the reportType string deviceInfo = "<DeviceInfo>" + " <OutputFormat>PDF</OutputFormat>" + " <PageWidth>" + fileWidth + "in</PageWidth>" + " <PageHeight>" + fileHeight + "in</PageHeight>" + " <MarginTop>0.5in</MarginTop>" + " <MarginLeft>1in</MarginLeft>" + " <MarginRight>1in</MarginRight>" + " <MarginBottom>0.5in</MarginBottom>" + "</DeviceInfo>"; Warning[] warnings; string[] streams; //Render the report renderedBytes = localReport.Render(reportType, deviceInfo, out mimeType, out encoding, out fileNameExtension, out streams, out warnings); //Clear the response stream and write the bytes to the outputstream //Set content-disposition to "attachment" so that user is prompted to take an action //on the file (open or save) Response.Clear(); Response.ContentType = mimeType; Response.AddHeader("content-disposition", "attachment; filename=foo." + fileNameExtension); Response.BinaryWrite(renderedBytes); Response.End(); } 

我知道已经有一段时间了,但这是答案。 更新你的下面的代码行

 string reportType = "excel"; 

 string reportType = "EXCELOPENXML"; 

这可能会帮助其他人。

你需要指定一个不同的mimetype,例如你可以在webconfiguration中设置:

 <configuration> <system.webServer> <staticContent> <mimeMap fileExtension=".xslx" mimeType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" /> </staticContent> </system.webServer> </configuration> 

或者只是在你的代码中指定这个mimetype。