新填报多次导入Excel

编辑
  • 文档创建者:jiangsr
  • 浏览次数:5262次
  • 编辑次数:10次
  • 最近更新:susie 于 2019-10-14
  • 1. 描述

    多次导入 Excel,运用了JS实现自定义导入 Excel 的功能。而对于不定行式的报表,因为行可以扩展,所以在连续多次导入Excel时,碰到较多场景无法满足客户需求。如果 Excel 数据行数大于等于页面已有数据,则执行全量导入,会覆盖掉模板原始数据;而如果 Excel 数据行数少于模板原始数据,会执行插入操作。

    所以在这两种不同情况下,希望都能选择是插入或者是覆盖。


    2. 思路

    针对不定行式填报表,提供统一的多次导入 Excel 的计算逻辑,包括:

    1)覆盖导入(不清空已有数据):每次导入 Excel 时,无论 Excel 中的行数是多于还是少于填报页面,均执行覆盖导入。如果 Excel 数据少于填报页面已有数据,则填报页面多出来的数据在 Excel 导入后保留。

    2)清空导入(清空已有数据):每次导入 Excel 时,无论 Excel 中的行数是多于还是少于填报页面,均执行覆盖导入,且每次导入时均清空填报页面已有数据,无论页面数据是多于还是少于 Excel,最后只保留 Excel 中的内容。

    3)增量导入:每次导入Excel 时,无论 Excel 中的行数是多于还是少于填报页面,均执行增量导入,在结尾行扩充导入的 Excel 内容。

    整合上述三种导入 Excel 的逻辑,分别对应三种 Excel 导入方式,三种方式命名为:覆盖导入、清空导入、增量导入。


    3. 示例

    同 多次导入Excel 中的示例,将如下的 2 个 Excel 表格导入到 FineReport 模板中:

    222


    3.1 模板准备

    打开%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject|\ExcelImport\ExcelImport_1.cpt,修改其表样,使其与 Excel 中的标题名保持一致,如下图:

    222

    注:若单元格中插入了数据列,需要将数据设置改为“列表”,如下图所示:

    222


    3.2 添加多次导入按钮

    点击模板>模板 Web 属性>填报页面设置,双击多次导入【Excel 按钮】将按钮添加到工具栏中,并删除内置的导入 Excel 按钮和提交按钮,如下图:

    222


    3.3 设置导入属性

    点击顶部工具栏设置,设置按钮属性,如下图:

    222


    4. 保存预览

    点击保存,选择新填报预览

    页面左上角会出现多次导入【Excel】按钮,下拉显示 Excel 导入的方式。

    222

    效果如下图:

    222


    5. JS 示例

    5.1 覆盖导入

    示例:

    1)打开上述示例,给B6单元格添加按钮控件,如下图:

    222

    2)添加覆盖导入的点击事件,如下图:

    222

    JS 代码:

    contentPane.importExcel_Cover();

    3)新填报预览

    保存模板,点击新填报预览,效果如下图:

    222


    5.2 清空导入

    同上述示例,实现清空导入。

    JS 代码:

    contentPane.importExcel_Clean();


    5.3 增量导入

    同上述示例,实现增量导入。

    JS 调用方法:

    contentPane.importExcel_Append();


    附件列表


    主题: 报表应用
    标签: 暂无标签
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]