反馈已提交

网络繁忙

Excel数据复制粘贴到填报单元格

  • 文档创建者:文档助手1
  • 历史版本:16
  • 最近更新:Catqiu 于 2022-11-11
  • 1. 概述

    1.1 应用场景

    FineReport 支持将 Excel 中的数据拷贝到填报页面中,再进行提交。

    注:不支持移动端。

    1.2 解决思路

    填报预览时,先增加相应数量的空白记录,再将 Excel 中的数据拷贝到这些空白记录中。

    2. 操作方法

    1)如下图所示设计填报报表。
    222

    2)选择填报预览打开报表,点击工具栏上的增加记录按钮,Excel 中需要复制多少行,浏览器上就要增加多少条空白记录

    222

    3)选中并复制(Ctrl+C)Excel 中的数据。

    222

    4)回到填报预览页面,粘贴数据。

    单击数据左上角单元格,出现如下图所示的黑框时粘贴(Ctrl+V)。
    222

    5)点击提交即可。

    3. 注意事项

    3.1 空值自动忽略

    问题描述:

    Excel 中的空值目前无法粘贴到填报页面,也就是空值会自动忽略跳过。

    screenshot-1.png

    解决方法:

    可在设计器菜单栏「模板>模板Web属性>填报页面设置」中添加加载结束事件(引入js文件或粘贴代码都行),此时模板web属性里选择为此模板单独设置。或在「服务器>服务器配置>填报页面设置」中添加加载结束事件(引入js文件或粘贴代码都行),此时模板web属性里要选择采用服务器设置。

    JS代码如下:

    FR.WritePane.prototype.dealWithPasteContent = function(value) {
    //移除尾部的换行符
    if (value.endWith('\n')) {
    value = value.substring(0, value.length - 1);
    }
    return this._parsePasteContentToArray(value);
    }
    FR.WritePane.prototype.cellPasteCheck = function(cell, cev, editorO) {
    return cev !== null && !editorO.disabled && editorO.editable !== false && editorO.directEdit !== false;
    }

    3.2 复制粘贴excel多个空白列,最后一列无法粘贴

    问题描述:

    复制的数据中存在空白列,复制的空白列无法粘贴进入模板,如下图所示:

    2022-11-11_16-37-19.gif

    解决方案:

    如果需要复制粘贴 Excel 中的空白行或空白列,需要在加载结束事件中添加的JS,JAR版本要求在2019-12-05以上

    FR.WritePane.prototype.dealWithPasteContent = function(value) {
    if (value.endWith('/n')) {
    value = value.substring(0, value.length);
    }
    return this._parsePasteContentToArray(value);
    }

    FR.WritePane.prototype.cellPasteCheck = function(cell, cev, editorO) {
    return cev !== null && !editorO.disabled && editorO.editable !== false && editorO.directEdit !== false;
    }

    FR.WritePane.prototype._parsePasteContentToArray = function(value) {
    var rows = [], start_index = 0, flag = false;
    for (var i = 0; i < value.length; i++) {
    var cr = value.charAt(i);
    if (cr === '"') {
    flag = !flag;
    } else if (cr === '\n' && !flag) {
    rows.push(value.substring(start_index, i)
    .replaceAll('""', '\n\r')
    .replaceAll('"', '')
    .replaceAll('\n\r', '"'));
    start_index = i + 1;
    }
    }
    if (start_index < value.length) {
    rows.push(value.substring(start_index, value.length)
    .replaceAll('""', '\n\r')
    .replaceAll('"', '')
    .replaceAll('\n\r', '"'));
    }
    for (var i = 0; i < rows.length; i++) {
    rows[i] = rows[i].split('\t');
    }
    return rows;
    }

    3.3 不支持直接显示控件

    如果勾选了直接显示控件,粘贴操作就会失效。

    Snag_10709f0b.png

    附件列表


    主题: 填报应用
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

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

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

    不再提示

    10s后关闭

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