导出Excel与数据集的数量没有关系,只是要确认好导出的时间点。
1. 在LoadDataSource 方法后,调用ExportToExcel 方法:
- GrapeCity.ActiveReports.PageReport rpt = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(@"RdlReport1.rdlx"));
- GrapeCity.ActiveReports.Document.PageDocument rptd = new GrapeCity.ActiveReports.Document.PageDocument(rpt);
- rptd.LocateDataSource += Rptd_LocateDataSource;
- ExportToExcel(rptd);
复制代码
2. 实现导出功能:
- private void ExportToExcel(PageDocument document)
- {
- System.IO.DirectoryInfo outputDirectory = new System.IO.DirectoryInfo(@"D:\MyExcel");
- outputDirectory.Create();
- GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtensionSettings excelSetting = new GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtensionSettings();
- excelSetting.FileFormat = GrapeCity.ActiveReports.Export.Excel.Page.FileFormat.Xls;
- GrapeCity.ActiveReports.Extensibility.Rendering.ISettings setting = excelSetting;
- GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtension excelRenderingExtension = new GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtension();
- GrapeCity.ActiveReports.Rendering.IO.FileStreamProvider outputProvider = new GrapeCity.ActiveReports.Rendering.IO.FileStreamProvider(outputDirectory, System.IO.Path.GetFileNameWithoutExtension(outputDirectory.Name));
- document.Render(excelRenderingExtension, outputProvider, excelSetting.GetSettings());
- }
复制代码
3. Rptd_LocateDataSource 方法
- private void Rptd_LocateDataSource(object sender, GrapeCity.ActiveReports.LocateDataSourceEventArgs args)
- {
- if (args.DataSourceName == "DataSource1")
- {
- switch(args.DataSetName)
- {
- case "DataSet1": args.Data = getDataSet1();break;
- case "DataSet2": args.Data = getDataSet2();break;
- case "DataSet3": args.Data = getDataSet3(); break;
- }
-
- }
-
- }
复制代码
|