很多人在开发报表的时候会遇到将多张表样相同的excel导入到模板,然后提交至数据库中。但问题是很多情况,在线导入不支持一次性选择多个excel,一次只能选择一个excel,也不能将多个excel中的数据在不提交入库的前提下导入到模板中,即如果在导入excel之前,web页面里面有数据,导入excel之后会覆盖之前的数据。

那这样的问题是不是无法解决呢?

解决的思路是利用FineReport自定义一个excel导入按钮,在点击该按钮的时候将上一次导入到模板中的数据进行提交,同时刷新页面,让页面恢复到原始的空白状态,并实现excel导入操作,然后再点击导入按钮,导入下一个excel,以此类推,这样在操作上就会简单很多。

比如将下面2张表样相同的excel导入到FineReport模板中:

1.修改其表样,使其与excel中的标题名保持一致,如下图:

2.报表填报属性修改

修改报表填报属性中列和数据库中列的对应,这里只需要修改类别ID对应的值,修改为map(C2, "ds2", 2, 1)。

3.自定义导入按钮

点击模板>模板web属性>填报页面设置,双击工具栏中的自定义按钮,将该按钮添加到顶部工具栏中,同时删除内置的导入Excel按钮和提交按钮,如下图:


 4.自定义事件编写

在解决思路中描述了自定义按钮需要执行的操作为:在点击按钮的时候将上一次导入到模板中的数据进行提交,同时刷新页面,让页面恢复到原始的空白状态,并实现excel导入操作。

在工具栏编辑界面,选中自定义按钮,点击自定义事件,如下图:

在JavaScript脚本中写下js语句,如下图:

var value=contentPane.getCellValue(0,1,2);
if (value!="") {
    FR.Msg.confirm("提示", "是否提交上一次导入数据", function(result){
            if(result){
            _g('${sessionID}').writeReport();
            contentPane.refreshAllSheets();
            contentPane.importExcel();
        }
        });
}
else{
    contentPane.importExcel();
    }  

点击填报预览,点击导入Excel这个自定义按钮,选择第一个需要导入的Excel,然后再点击第二个需要导入的Excel,页面会提示是否提交上一次导入数据,点击确定,则会将上一次导入数据提交至数据库,然后再弹出文件选择框,这时就可以选择第二个Excel,以此类推。

要提醒的是,在利用此工具填报报表在线多次导入Excel时只支持空白模板的导入,即填报模板中不能有原始数据存在;在线多次导入Excel支持各种样式的填报报表,不仅仅局限于行式填报报表,但是如果是非行式填报报表,报表的控件位置需要与Excel中的数据位置保持一致,行式填报报表则需要保持标题名一致。

报表工具如何实现多次导入Excel的更多相关文章

  1. Web报表工具FineReport实现EXCEL数据导入自由报表

    在制作填报报表的时候.对于空白填报表,经常导出为Excel,派发给各部门人员填写后上交.怎样能避免手动输入,直接将Excel中的数据导入到填报表中提交入库呢? 这里以一个简单的员工信息填报演示样例进行 ...

  2. BIRT报表工具,直接导出EXCEL

    BIRT是一款基于JAVA的免费开源报表工具,使用起来也挺方便. 有时你可能不需要在浏览器中展示报表,然后在点击导出按钮保存为EXCEL, 这里提供一种方式,直接把报表导出为EXCEL下载. JS代码 ...

  3. python制作简单excel统计报表3之将mysql数据库中的数据导入excel模板并生成统计图

    python制作简单excel统计报表3之将mysql数据库中的数据导入excel模板并生成统计图 # coding=utf-8 from openpyxl import load_workbook ...

  4. 数据分析用这样的报表工具,秒杀Excel!

    报表工具是为满足公司对报表数据的业务需求,弥补第三方报表平台给项目开发定制报表的工作而自主研发的一个通用性强易于维护的web报表工具. 报表工具以NPOI基础架构,通过公司的REAP开发框架运用到所有 ...

  5. 能无缝嵌入Excel的报表工具,报表轻松做!

    现在很多人做数据分析会被推荐选择去用编程R和Python.PowerBI.Tableau.Qlik.Smartbi... 从目前数据分析的行业来说,Excel是世界上使用人数最多的报表分析工具,没有之 ...

  6. 「Excel实用技巧」拿下这个报表工具,轻松给报表加水印!

    水印报表是什么?怎么给excel表格加水印? 许多时候,为了防止报表被盗.保护信息安全和保护版权,采用水印能够有效实现该需求.水印是为了防止报表被盗.进行真伪鉴别.版权保护等,而在报表中添加半透明的图 ...

  7. 作为报表工具,Excel移动报表的优势和劣势

    Excel是应用最广泛的报表工具,它集数据存储.数据处理.数据分析于一身,广泛应用于各行各业的日常工作中(无论这个企业的信息化程度有多高.多低).而且随着Office365的普及,软件License的 ...

  8. 设计与开发一款简单易用的Web报表工具(支持常用关系数据及hadoop、hbase等)

    EasyReport是一个简单易用的Web报表工具(支持Hadoop,HBase及各种关系型数据库),它的主要功能是把SQL语句查询出的行列结构转换成HTML表格(Table),并支持表格的跨行(Ro ...

  9. 数据可视化之powerBI基础(十二)PowerBI导入Excel数据有哪几种方式?

    https://zhuanlan.zhihu.com/p/64999937 Excel作为使用最频繁.应用最广泛.用户最庞大的数据处理工具,当然也应该是PowerBI最常用的数据获取方式,本文介绍一下 ...

随机推荐

  1. LocalDB在IIS中的运行失败

    Using LocalDB with Full IIS, Part 1: User Profile http://blogs.msdn.com/b/sqlexpress/archive/2011/12 ...

  2. C#开发微信门户及应用(44)--微信H5页面开发的经验总结

    在我们开发微信页面的时候,需要大量用到了各种呈现的效果,一般可以使用Boostrap的效果来设计不同的页面,不过微信团队也提供很多这方面的资源,包括JSSDK的接口,以及Weui的页面样式和相关功能页 ...

  3. .NET基础架构方法—DataTableToList通用方法

    p { display: block; margin: 3px 0 0 0; } --> .NET架构基础方法—DataTableToList通用方法   我们经常需要将从数据库中所读取的数据以 ...

  4. [WCF编程]10.操作:事件

    一.事件概述 基础的WCF回调机制并不能阐明客户端与服务之间交互的本质.双向回调的规范使用可以通过事件来完成.客户端发生的相关事项都可以通过事件通知客户端或者多个客户端.事件可能源于直接的客户端调用, ...

  5. Android Studio :enable vt-x in your bios security,已经打开还是报错的解决方法

    quote: For Windows 10: First of all, install the intelhaxm-android.exe located in the folder SDK\ext ...

  6. 关于依赖注入IOC/DI的感想

    之前一直不明白依赖注入有什么好处,甚至觉得它是鸡肋,现在想想,当时真是可笑. 这个想法正如同说接口是没有用处一样. 当整个项目非常庞大,各个方法之间的调用非常复杂,那么,可以想象一下,假设说没有任何的 ...

  7. slidedoor滑动门特效

    slidedoor滑动门特效 exportWidth:暴露门的宽度 width imagesWidth:单张图片的宽度width 每道门每次偏移量 translate=imagesWidth-expo ...

  8. 设计一个自动生成棋盘格子的JS小程序

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. 学习zepto.js(对象方法)[3]

    继续说zepto里attributes的相关操作. attr,removeAttr,prop这三个方法. attr(): 三种用途 get: 返回值为一个string字符串 $("<s ...

  10. 更改Visual Studio 2015 默认的语言设置

    Vs支持多种语言,但有可能创建项目时,默认的开发语言不是你需要的,比如:默认是Visual C++ 你可以通过"工具"----选项----导入和导出设置来修改. 引用: https ...