找回密码
 立即注册

QQ登录

只需一步,快速开始

下里巴人

注册会员

14

主题

24

帖子

88

积分

注册会员

积分
88
下里巴人
注册会员   /  发表于:2021-6-16 17:59  /   查看:3818  /  回复:6
本帖最后由 Crystal.Li 于 2021-6-17 10:06 编辑


问题1: 如上图, 会生成多个sheet

问题2: reportParams没有生效

导出代码如下:  其中definition是直接挂的嵌入json ( 先从后台读出来, 再根据文档设置到数据源的jsonData )  
return pageReport

    .load(definition, { ReportParams: [{ Name: "chooseColumn", Value: [] }] })
    .then((x: any) => pageReport.run())
    .then((pageDocument: any) => {
      return Excel.exportDocument(pageDocument, settings);
    })
    .then(function (result: any) {
      result.download("arjs-excel");
    });

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

6 个回复

倒序浏览
Crystal.Li讲师达人认证 悬赏达人认证
论坛元老   /  发表于:2021-6-16 18:13:17
沙发
您好,
问题1:
导出时在画廊模式导出即可:

问题2:
可以提供更多的代码说明吗?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
下里巴人
注册会员   /  发表于:2021-6-16 19:07:54
板凳
本帖最后由 下里巴人 于 2021-6-16 19:10 编辑

我是自定义的工具栏

问题1: 已经在画廊模式了 ( 如果不启用画廊, 则只显示很少一部分内容 )


问题2:
  1. export function runExcel(
  2.   title: string,
  3.   definition: any,
  4.   loadContent: () => any
  5. ) {
  6.   // https://demo.grapecity.com.cn/activereportsjs/demos/api/export/purejs
  7.   const ARJS = (GC as any).ActiveReports.Core;
  8.   const Excel = (GC as any).ActiveReports.XlsxExport;

  9.   const settings = {
  10.     sheetName: title,
  11.   };

  12.   const pageReport = new ARJS.PageReport();
  13.   return pageReport
  14.     .load(definition, { ReportParams: [{ Name: "chooseColumn", Value: [] }] })
  15.     .then((x: any) => pageReport.run())
  16.     .then((pageDocument: any) => {
  17.       return Excel.exportDocument(pageDocument, settings);
  18.     })
  19.     .then(function (result: any) {
  20.       result.download("arjs-excel");
  21.     });
  22. }
复制代码

  
  
注意其中的
  1. pageReport
  2.     .load(definition, { ReportParams: [{ Name: "chooseColumn", Value: [] }] })
复制代码

这里的 reportParams 未生效, 或者放的位置不对

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
下里巴人
注册会员   /  发表于:2021-6-16 19:12:43
地板
pageReport是全新的, 并未继承 viewer 里的 reportParams   和         viewer.renderMode = "Galley";

所以可能上面的两个问题应该改为:
自定义工具栏, 如何 在导出excel时, 启用 Galley + reportParams
回复 使用道具 举报
Crystal.Li讲师达人认证 悬赏达人认证
论坛元老   /  发表于:2021-6-17 12:04:33
5#
您可以提供一个复现该问题的demo工程吗?目前看片段代码感觉没啥问题,提供一个demo我可以调试看看,目前这样看不到全貌,不好排查问题~
回复 使用道具 举报
下里巴人
注册会员   /  发表于:2021-6-17 18:20:47
6#
已解决, 思路是 直接使用viewer的内容导出, 而不要自行去new PageReport
相关代码如下:

  1. export function runExcel(
  2.   viewer: any,
  3.   title: string,
  4. ) {
  5.   // 此链接导出时, 不带 入口参数 及 画廊设置
  6.   // https://demo.grapecity.com.cn/activereportsjs/demos/api/export/purejs
  7.   // 此链接相当于直接使用viewer设置, 所以显示什么内容, 就导出什么内容, 完美!
  8.   // https://demo.grapecity.com.cn/activereportsjs/demos/api/ButtonAddExportExcel/purejs
  9.   const settings = {
  10.     sheetName: title,
  11.   };

  12.   return viewer.export("xlsx", settings).then((result: any) => result.download(title));
  13. }
复制代码


感觉文档跟spreadjs相比, 有明显差距啊
回复 使用道具 举报
James.Lv讲师达人认证 悬赏达人认证 活字格认证 Wyn认证
超级版主   /  发表于:2021-6-17 18:24:00
7#
下里巴人 发表于 2021-6-17 18:20
已解决, 思路是 直接使用viewer的内容导出, 而不要自行去new PageReport
相关代码如下:

好的,感谢分享,我们后面会优化产品文档
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部