本帖最后由 Lenka.Guo 于 2016-9-27 10:54 编辑
您的需求可以分为以下几步完成:
首先在MVC中为报表动态绑定数据源(参考帖子:http://gcdn.gcpowertools.com.cn/showtopic-19954-1-1.html):绑定数据源成功后执行导出Excel实现思路:
- 在工程中添加一个【Web 服务】文件,修改该类继承的原始类型为GrapeCity.ActiveReports.Web.ReportService。
- 重写OnCreateReportHandler方法,在这个方法中根据传进来的报表路径,生成报表对象。
- protected override object OnCreateReportHandler(string reportPath)
- {
- var instance = base.OnCreateReportHandler(reportPath);
- var pageReport = instance as PageReport;
- if (pageReport != null)
- {
- pageReport.Document.LocateDataSource += Document_LocateDataSource;
- }
- return instance;
- }
复制代码
- 调用报表对象的Document_LocateDataSource方法来绑定数据源
- void Document_LocateDataSource(object sender, LocateDataSourceEventArgs args)
- {
- switch (args.Report.PageReport.Report.Description)
- {
- case "客户信息":
- args.Data = GetCustomer(customerID);
- <b> ExportToExcel(args.Report);</b>
- break;
- case "订单信息":
- string orderID = args.Report.Parameters[0].CurrentValue.ToString();
- args.Data = GetOrder(orderID);
- break;
- default:
- break;
- }
- }
复制代码
- private void ExportToExcel(PageDocument report)
- {
- GrapeCity.ActiveReports.Export.Excel.Section.XlsExport xlsExport1 = new GrapeCity.ActiveReports.Export.Excel.Section.XlsExport();
- xlsExport1.FileFormat = GrapeCity.ActiveReports.Export.Excel.Section.FileFormat.Xlsx;
- xlsExport1.Export(report, @"D:\Demo\" + "\\XLSExpt.xlsx");
- }
复制代码
|