历史版本3 :大数据集导出常见问题 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

本文介绍大数据集导出的常见问题及解决方案。

2. 示例编辑

2.1 大数据集导出的进度条

问题描述

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

原因分析

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

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

问题描述

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

原因分析

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

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

问题描述

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

原因分析

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

解决方案

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

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

问题描述

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

原因分析

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

解决方案

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

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

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

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

问题描述

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

解决方案

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

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

问题描述

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

原因分析

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

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

问题描述

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

原因分析

用户数据库的配置问题。

解决方案

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

2.9 大数据集导出接口不读取系统参数

问题描述

大数据集导出接口不读取系统参数,数据集里引用了 fine_username 传给数据列 a , 单元格里再放入数据列 a ,预览的时候,能看到正常显示登录用户名,但是导出的时候,Excel 里不显示登录用户名。

解决方案

2020-04-26 的 JAR 包已修复该问题。

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

问题描述

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

解决方案

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

2.11 大数据集导出接口,参数是否支持 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.11 大数据集导出超时

问题描述

使用了 JS 大数据集导出,过了很长一段时间之后没有对应文件下载,进度条也没有了。用户 8w 行* 20 列的数据量,plsql 查询也需要 16 分钟才能查出来,报表点了大数据集导出之后无法对应生成 Excel 下载。

原因分析

用户数据量太大,导出的时间需要比较久,而部署 FR 的容器的超时时间设置比较小,所以超时了导致失败。

解决方案

参考方案