反馈已提交

网络繁忙

大数据集导出常见问题

  • 文档创建者:Wendy123456
  • 历史版本:13
  • 最近更新:帆软应用复用-Cat 于 2023-06-30
  • 1. 概述

    本文介绍大数据集导出的常见问题及解决方案,并梳理出了大数据集导出常见问题的排查思路,方便用户再遇到类似问题减少排查时间,减小排查难度。

    大数据集导出详情请参见:JS实现大数据集导出Excel大数据集导出Excel插件 

    1.1 不支持的功能

    1.1.1 JS 实现大数据集导出

    1)JS 获取不到 URL 中的参数:JS 导出其实是针对模板或者数据,不预览也能导出,不依赖 session,URL 传参数是在预览过程中传递不是模板本身的属性也不是服务器的环境。

    2)在 JS 的 URL 部分加上&_filename_=来指定导出文件名称,导出文件名最后面会自动拼接数据集名称,不支持去掉拼接的dsname 。

    3)参数过多情况导出报错 414 。

    4)获取多选下拉树控件时为空数组,而不是空字符串,将导致数据查询参数为空查询全部失败。

    5)不支持移动端。

    1.1.2 大数据集导出插件导出

    1)导出的 Excel 是通过 SQL 语句直接从数据库中获取的数据,并非报表中的数据,因此报表中设置的数据格式等无法被导出。

    2)导出不支持 CSV 格式。

    3)大数据集导出 Excel 字段包含"/"时按钮配置无法保存。

    4)决策系统记录的导出次数不包括大数据集导出 Excel 插件的导出次数。

    5)不支持按钮同事设置多个事件。

    6)不支持筛选导出表字段名称包含符号"{}"。

    7)不支持 Spider 数据集。

    8)不支持移动端。

    1.2 排查思路

    1.2.1 通用限制

    1)超过 5s 显示进度条。

    2)数据格式变化,100.0 导出后显示为 100 。

    3)大数据集导出 Excel 每 100W 行会到下一个 Sheet 。

    4)导出的数据量不超过 1000W 行 * 20 列,数据量超大可能会导致仅导出部分数据。

    1.2.2 JS 实现大数据集导出

    JS 实现大数据集导出遇到问题时的常见排查思路如下所示:

    1.2.3 大数据集导出插件导出

    使用大数据集导出插件导出时,遇到问题时的常见排查思路如下所示:

    2. JS 实现大数据集导出 Excel 问题

    2.1 大数据集导出 Excel 结果不对

    问题描述

    JS 实现的大数据集导出,用户使用下拉树控件,当选择参数的时候才可以正常导出数据,如果不选择内容,导出的就是空的,但是不选择内容的时候,点击查询是能够查出数据的。

    原因分析

    JS 大数据集导出,多选下拉树控件值不选时,获取到为空数组"[]",而不是空字符串"",导致数据集查询那边参数为空查询全部失败。

    解决方案

    手动在 JS 中给参数赋空值。

    2.2 大数据集导出 Excel 每 100W 行会分页

    大数据集导出 Excel 每 100W 行会到下一个 sheet 。

    2.3 开启行式引擎导出 Excel 行高过小

    问题描述

    行式引擎开启后,大数据量 Excel 导出行高过小,用流式导出插件也是一样的情况。

    解决方案

    如果是 8.0 和 9.0 遇到了这种情况,就调大行高,酌情调整,能够有效的改善这个情况。如果是 10.0 遇到了这种情况,可以通过大数据集导出/新引擎解决。

    2.4 自定义按钮导出大数据集只导出部分

    问题描述

    导出 1300w 行 26 列左右的数据,只导出了部分。

    原因分析

    JS实现大数据集导出Excel 建议导出的数据量不超过「1000W 行 * 20 列」,数据量超大可能会导致仅导出部分数据。

    2.5 大数据集导出接口,参数是否支持 JSON 数组格式

    问题描述

    大数据集导出针对一个参数对应多个值的情况,字符串拼接是否支持 JSON 数组格式?大数据集导出时,某个参数需要传递多值,测试用 JSON 数组格式放到接口参数中,但是导出为空,控制台显示导出成功语句,但是导出的 Excel 没有内容。

    拼接字符串用了以下几种形式:
    {val:[\"华北\"]}              ==导出为空
    {val:[\"华北\",\"华东\"]}==导出为空
    {val:\"华北\"}                ==导出为华北
    {val:['华北','华东']}         ==导出为空
    {val:[华东','华北]}           ==导出提示报错:Unexpected End: at character 15 of {val:[华东','华北]}
    {val:\"华北\",val:\"华东\"};==导出为华东

    原因分析

    参数拼接的方式错了

    解决方案

    华北','华东 需要被""包围起来,但是""需要转义防止被解析,所以写成
    var paramStr = encodeURIComponent("{val:\"华北','华东\"}")
    //数据集传参
    var colNames = encodeURIComponent("地区,销售员,产品类型,产品,销量")//指定导出的数据列,导出字段按此顺序排列,为空默认导出所有
    _g().directExportToExcel("ds5","导出测试",paramStr,colNames)

    2.6 order by 导致 Excel 导出数据缺失

    问题描述

    数据集总数据量 13 万,导出 Excel 后只有 65535 条,将 SQL 中的 order by 注释掉就能导出全部。&format=excel导出、excel按钮导出、大数据集导出等方法均能复现。

    原因分析

    用户数据库的配置问题。

    解决方案

    将 order by 注释,使用大数据集导出。

    3. 大数据导出插件问题

    3.1 大数据集导出插件设置导出字段保存不了

    问题描述

    大数据集导出插件,如果字段名有“/”符号,设置的导出字段名会无法保存。

    原因分析

    目前不支持特殊字符,HTML 解析会有问题。

    3.2 大数据集导出插件,只导出了字段,没有数据

    问题描述

    系统和设计器都升级 JAR(2021-11-30)后,原先没有问题的模板,使用了大数据集导出插件导出的,在设计器本地目录看没有问题,但是设计器远程连接服务器,以及在服务器平台挂载看都是导出没有数据只有字段名称。

    解决方案

    升级到 2021-12-15 及之后的 JAR 包解决。

    3.3 大数据集导出插件导出新自适应的决策报表报错:不支持此数据库

    问题描述

    在使用新自适应的frm且使用大数据集导出excel导出时,数据集使用的是mysql5.7.23,会报错“不支持此数据库”,不使用新自适应报表时可以正常导出。

    解决方案

    大数据集导出插件更新升级至 V1.0.9 。

    3.4 大数据集导出插件的参数有下划线时导出为空

    解决方案

    更新插件至 V1.1.1 及之后。

    3.5 数据集参数为名的控件导出时空白

    解决方案

    更新插件至 V1.1.5 及之后。

    3.6 大数据集导出插件的参数配置,影响数据集的参数默认值

    解决方案

    更新插件至 V1.1.6 及之后。

    3.7 大数据集导出接口获取不到url中的参数

    原因分析

    2020.04.26以及以后的jar不支持获取url的参数。

    解决方案

    模板 SQL 参数数据集里加上参数,如下图所示:

    3.8 大数据集导出连接超时

    原因分析

    用户数据量较大,导出时间较久,超出了容器设置的超时时间。

    解决方案

    调整容器的超时时间即可。

    例如 Tomcat 容器可以修改%Tomcat_HOME%\conf 目录下的 server.xml 文件,适当调整 connectionTimeout 参数值,如下图所示:


    Tomcat 中默认的连接超时时间是20秒,一般最好设置为60秒,从而避免后台程序处理时间长导致连接断开,进行以下修改即可: connectionTimeout="60000"

    4. 其他问题

    4.1 大数据集导出不支持 spider 数据集

    问题描述

    用户使用的 spider 数据集,明细表,420w 左右的数据量,把数据列拖到单元格,设置了边框就没有其他任何特别的设置了。 用户想把模板导出成 EXCEL,在数据集预览是有数据的,用普通的 EXCEL 导出导出不了,想问大数据集导出可以吗?

    原因分析

    大数据集导出目前只支持关系型数据库,不支持 spider 数据集或者程序数据集等。

    解决方案

    建议使用关系型数据库的普通数据集。

    4.2 大数据集导出的进度条

    问题描述

    按钮写 JS 进行大数据集导出,如果数据量比较大,有一段时间页面看起来没有反应。

    原因分析

    大数据集导出是做了进度条的,但是默认在 5s 之后才会开始显示。

    4.3 HTTP 400 报错

    问题描述

    1)用户在 IE 浏览器环境下使用 FineReport 10.0 的大数据集导出功能导出数据集结果时出现 HTTP 400 报错;

    2)用户在 IE 浏览器环境下点击邮件中定时调度报表地址后出现 HTTP 400 报错。

    原因分析

    HTTP 400 报错只在 IE 浏览器环境下发生,使用 Chrome 内核的浏览器可正常访问,经验证 URL 中含有中文,并且复制之后会转换为 UTF-8 的编码。

    解决方案

    在 IE 浏览器里,点击设置>Internet选项>高级,勾选发送非 Intranet URL 的 UTF-8 查询字符串以 UTF-8 形式发送 URL 路径缺一不可,如下图所示:

    附件列表


    主题: 报表专题
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭



    AI

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持