【NSBD】——系统导入导出

在最近做的项目中,要实现一个导入导出的功能,很高兴,组长将这个任务交给了我,下面我就来介绍一下,我们这个系统的导入导出的功能实现。


本系统的导入导出功能实现分为两个步骤:Excel配置,具体的导入导出功能实现。


一、Excel配置


主要功能:


Excel配置是一个配置需要导入的Excel表格字段的功能,用来设置字段的数据类型,是否显示,以及是否导入。


1、  需要导入的Excel表格要根据这个配置进行字段个数的控制(不显示的不用包含在Excel表中)


2、  后台导入根据是否显示,是否导入,以及是否关联主键来进行导入功能。(未显示的字段的数据类型都有各自相对应的数据类型),后台代码中会根据这些独特的数据类型(例如,addtime,relation,reporter,del,pkey)来进行设置。不需要在Excel中填写。


(1)  树形目录配置


 


(2)  基本信息




1、  基本信息是保存在SYS_EXCEL_REF_TYPE中,主要是记录基本信息中的代码,名称,pid,is_table等。Is_table表示树的节点是否为配置的表,并根据is_table的值来判断树形结构的右键菜单中是可以(新建分组,新建表)。


2、  代码下拉框中绑定的表是用sql=”select lower(table_name) as id,table_name as text from tabs”来获取加载的。


3、  字段信息(点击自动获取字段,我们就可以获取此表的所有字段,完成后会将每个字段的信息保存到SYS_EXCEL_REF_INFO表中)


 


关键代码:(t_table为操作的表名,id :SYS_EXCEL_REF_TYPE中对应数据表的id)

public void updateFieldsFromCols(String t_table,String id){
      List<Map>tabcols=this.findTabCols(t_table); // 从数据库中获取每个字段的code,data_type,data_length,comments.
      List<ExcelInfo>tabfields = this.findTableFields(id);//去SYS_EXCEL_REF_INFO表查询此表对应的字段列表
      if(tabcols==null ||tabcols.isEmpty()){
         return;
      }
      if(tabfields==null ||tabfields.isEmpty()){
         tabfields=newArrayList();
      }
      Integeri=1;
      boolean exist=false;
      for(Mapcol:tabcols){
        
         for(ExcelInfo tf:tabfields){
            Stringtfcode = obj2str(col.get("tfcode"));
            if(tfcode.equalsIgnoreCase(tf.getKey_column().trim())){
                exist=true;
                break;
            }
         }
         if(exist){
            continue;
         }
         ExcelInfo tf1= new ExcelInfo();
         tf1.setId(UUID.randomUUID().toString());
         tf1.setAddtime(new Timestamp(System.currentTimeMillis()));
         tf1.setTypeid(id);
         tf1.setKey_column(obj2str(col.get("tfcode")));
         tf1.setTitle(obj2str(col.get("tfname")));
         tf1.setCtype(type2t(col.get("tftype")));
         tf1.setOrderby(i++);
         tf1.setIskey("0");
         tabfields.add(tf1);
        
         excelConfDao.add(tf1, true);
    }


 

至此导入导出的EXCEL配置就搞定了。接下来就是导入导出的操作了。


总结:

这几天做导入导出的功能,还是参照其他系统来做的,主要是调试代码,在调试代码的过程中才渐渐的搞明白了。到最后,觉得其实也挺简单的,还有就是你调试的时候弄懂了,只是搞懂了一部分,当你真正自己动手去敲能够完整的弄出来的时候,才是真正的弄懂了。


评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

幸运的梦之星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值