1.使用XlsExport导出
以导出excel格式为例,XlsExport能够支持所有的报表类型
GrapeCity.ActiveReports.PageReport _reportDef = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(Server.MapPath("/Reports/" + report + ".rdlx"))); _reportDef.Report.DataSources[0].DataSourceReference = ""; _reportDef.Report.DataSources[0].ConnectionProperties.DataProvider = "OLEDB"; _reportDef.Report.DataSources[0].ConnectionProperties.ConnectString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};", Server.MapPath("/Data/NWind_CHS.mdb")); GrapeCity.ActiveReports.Document.PageDocument _reportRuntime = new GrapeCity.ActiveReports.Document.PageDocument(_reportDef); GrapeCity.ActiveReports.Export.Excel.Section.XlsExport XlsExport1 = new GrapeCity.ActiveReports.Export.Excel.Section.XlsExport(); System.IO.MemoryStream ms = new System.IO.MemoryStream(); XlsExport1.FileFormat = GrapeCity.ActiveReports.Export.Excel.Section.FileFormat.Xlsx; XlsExport1.Export(_reportRuntime, ms); Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; Response.AddHeader("content-disposition", Server.UrlPathEncode("attachment;filename=MyExport.xlsx")); Response.BinaryWrite(ms.ToArray()); Response.End();
2.使用Render的方式导出
Render只能用来导出页面报表和RDL报表,但是对性能和样式都有很大的提升
GrapeCity.ActiveReports.PageReport _reportDef = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(Server.MapPath("/Reports/" + report + ".rdlx"))); _reportDef.Report.DataSources[0].DataSourceReference = ""; _reportDef.Report.DataSources[0].ConnectionProperties.DataProvider = "OLEDB"; _reportDef.Report.DataSources[0].ConnectionProperties.ConnectString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};", Server.MapPath("/Data/NWind_CHS.mdb")); GrapeCity.ActiveReports.Document.PageDocument _reportRuntime = new GrapeCity.ActiveReports.Document.PageDocument(_reportDef); // Create an output directory System.IO.MemoryStream ms = new System.IO.MemoryStream(); // Provide settings for your rendering output. GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtensionSettings excelSetting = new GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtensionSettings(); excelSetting.FileFormat = GrapeCity.ActiveReports.Export.Excel.Page.FileFormat.Xls; //excelSetting.MultiSheet = false; GrapeCity.ActiveReports.Extensibility.Rendering.ISettings setting = excelSetting; //Set the rendering extension and render the report. GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtension excelRenderingExtension = new GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtension(); GrapeCity.ActiveReports.Rendering.IO.MemoryStreamProvider outputProvider = new GrapeCity.ActiveReports.Rendering.IO.MemoryStreamProvider(); _reportRuntime.Render(excelRenderingExtension, outputProvider, excelSetting.GetSettings()); Response.ContentType = "application/vnd.ms-excel"; Response.AddHeader("content-disposition", "inline;filename=MyExport.xls"); outputProvider.GetPrimaryStream().OpenStream().CopyTo(ms); Response.BinaryWrite(ms.ToArray()); Response.End();