找回密码
 立即注册

QQ登录

只需一步,快速开始

KearneyKang 讲师达人认证 悬赏达人认证

超级版主

199

主题

6505

帖子

1万

积分

超级版主

Rank: 8Rank: 8

积分
10804

圣诞拼拼乐微信认证勋章讲师达人悬赏达人元老葡萄

KearneyKang 讲师达人认证 悬赏达人认证
超级版主   /  发表于:2019-7-22 11:49  /   查看:4323  /  回复:0
本帖最后由 KearneyKang 于 2020-6-17 19:04 编辑

由于在导出Excel的时候,报表存在分页的情况,当导出Excel的时候会出现多个Sheet的情况。但是在实际生产中,有时候是不需要导出多个sheet的,因此就要进行一些对应属性的设置。
当使用WebViewer进行报表的渲染,然后在前端进行报表的导出时进行的属性设置
由于是有Webviewer渲染报表,工具栏默认没有导出按钮的,因此需要我们自己进行对应的按钮的添加,并且在进行属性的设置。
具体的实现代码如下:
  1. <script language="javascript" type="text/javascript">  

  2.     var exportSelect = '<select id="ExportSelect" style="width:80px"><option selected disabled>Export</option><option value="PDF" style="background: url(images/pdf.png) right no-repeat; width: 50px">PDF</option><option value="Excel" style="background: url(images/Excel.gif) right no-repeat; width: 50px">Excel</option></select>';

  3.        $(document).ready(function () {

  4.         $(".arvToolBar").append(exportSelect);

  5.         $("#ExportSelect").change(function (e, args) {

  6.             var viewModel = GetViewModel("WebViewer1");

  7.             var valueSelected = this.value;

  8.             if (viewModel.PageLoaded()) {

  9.                 switch (valueSelected) {

  10.                     case "PDF":

  11.                         viewModel.Export(ExportType.Pdf, function (uri) {

  12.                             window.location = uri;

  13.                         }, true);

  14.                         break;

  15.                     case "Excel":

  16.                         viewModel.Export(ExportType.Xls,  function (uri) {
  17.                             window.location = uri;
  18.                         }, true,

  19.                        { FileName: 'Test1', MultiSheet: true });//导出属性的设置
  20.                         break;
  21.                 }

  22.             }

  23.         });

  24.     });

  25. </script><span style="color: black; font-family: 新宋体; font-size: 9.5pt; background-color: rgb(255, 255, 255);"> </span>
复制代码
当使用Html5进行报表渲染的时候,由于使用Html5进行渲染报表,工具栏里是有导出按钮的,为了整体UI的美观性,因此不需要再在页面上添加一个按钮,然后单独进行导出Excel属性的设置。可以进行如下的操作。
(1)找到导出对应的JS文件,就是我们项目中引用的GrapeCity.ActiveReports.Viewer.Html.js JS文件
(2)然后找到对应的导出属性设置的具体代码。
(3)在进行 对应的属性的设置:
  1. exportTo: function(exportType) {
  2.                 return {
  3.                     exec: function() {
  4.                         var options = {
  5.                             FileName: viewer.report().reportName,
  6.                             PreviewPages: 0 ,
  7.                             Pagination: false,                        
  8.                             MutiSheet: false                                                               
  9.                         };
  10.                         _isExportProcessing(!0), viewer.document().export(exportType, options, viewer.report().parameters()).done(function(exportUrl) {
  11.                             if (_isExportProcessing(!1), exportUrl) {
  12.                                 var exportWindow = null;
  13.                                 try {
  14.                                     exportWindow = window.open(exportUrl + "&Attachment=1", "_blank"), exportWindow && exportWindow.focus();
  15.                                 } catch (e) {}
  16.                                 exportWindow || viewer.callExportCallback(exportUrl + "&Attachment=1", function(url) {
  17.                                     window.location = url;
  18.                                 });
  19.                             }
  20.                         });
  21.                     },
  22.                     enabled: _isDocReady
  23.                 };
  24.             },
复制代码
当使用JSviewer渲染报表的时候,由于JSviewer现在的JS文件中没有提供对应的API所有我们需要自己自定义一个导出按钮,然后进行对应的导出的设置
实现代码如下:
  1. viewer = GrapeCity.ActiveReports.JSViewer.create({

  2.             element: '#viewerContainer', documentLoaded: () => viewer.export('XLSX', null, true, { FileName: '1997 Annual Report1', Multisheet: false,LayoutMode:"Galley" })
  3.         });

复制代码


0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部