postmanlly 发表于 2015-5-21 14:44:00

web报表导出excel时,是否能不要分页,一次性导出所有数据

求助:web上呈现的报表是分页的,并且每一页都有表头,增加了excel导出后发现导出的文件也分页了,希望导出的数据不要分页(也不要有表头),有什么办法?用的是客户端导出

frank.zhang 发表于 2015-5-21 17:03:00

您好,
不分页导出需要设置
核心代码:
            excelSetting.MultiSheet = false;
            excelSetting.Pagination = false;

全部代码:
            // Provide the page report you want to render.
            GrapeCity.ActiveReports.PageReport _reportDef = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(Server.MapPath("/Reports/" + report + ".rdlx")));
            _reportDef.Report.DataSources.DataSourceReference = "";
            _reportDef.Report.DataSources.ConnectionProperties.DataProvider = "OLEDB";
            _reportDef.Report.DataSources.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;
            excelSetting.Pagination = 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();

postmanlly 发表于 2015-5-21 17:28:00

回复 2楼frank.zhang的帖子

我用的是前端js语言导出的,代码如下
viewModel.Export(ExportType.Xls, function (uri) {
                  window.location = uri;
                }, true);
这样的方式导出,怎么设置不分页导出呢?3ks

frank.zhang 发表于 2015-5-21 17:44:00

您好,
前端js的方式没有后台的灵活。Export的settings,设置
settings: Optional export settings. Here you can specify the exported file name in the FileName keyword that is case-sensitive.

http://arhelp.grapecity.com/webhelp/AR9/index.html#WorkingWithHTMLViewerUsingJavascript.html

postmanlly 发表于 2015-5-21 19:40:00

OK,已经实现了,谢谢!

frank.zhang 发表于 2015-5-22 09:07:00

感谢反馈,给您分发 100 金币。可以用于兑换论坛奖品。
金币规则:点击进入
礼品列表:点击进入

postmanlly 发表于 2015-5-22 10:37:00

谢谢!

frank.zhang 发表于 2015-5-22 10:46:00

:itwn:
页: [1]
查看完整版本: web报表导出excel时,是否能不要分页,一次性导出所有数据