【NSBD】——系统导入导出

来源:互联网 发布:纯音乐推荐知乎 编辑:程序博客网 时间:2024/05/05 12:44

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


本系统的导入导出功能实现分为两个步骤: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配置就搞定了。接下来就是导入导出的操作了。


总结:

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


1 0
原创粉丝点击