【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配置就搞定了。接下来就是导入导出的操作了。
总结:
这几天做导入导出的功能,还是参照其他系统来做的,主要是调试代码,在调试代码的过程中才渐渐的搞明白了。到最后,觉得其实也挺简单的,还有就是你调试的时候弄懂了,只是搞懂了一部分,当你真正自己动手去敲能够完整的弄出来的时候,才是真正的弄懂了。
- 【NSBD】——系统导入导出
- 【NSBD】——导入导出代码实现
- 【NSBD】——Jquery tagsinput标签
- 【NSBD】——Combotree 加载数据
- 【NSBD】——My first Map
- 【NSBD】——二维码的生成与打印
- 【NSBD】——datagrid多次选中记录问题
- 系统导入导出工具
- mysql备份——导入导出
- SAS学习——数据导入导出
- android 4.0联系人分析—导入导出
- Linux系统Mysql备份的导入导出
- odoo系统中如何导入/导出数据?
- oracle数据库<导入,导出>linux系统
- ORACLE数据导出与导入专题(1)——导出TXT,从TXT导入
- 超级SQL之数据库导入导出——oracle
- mysql数据库设计导入导出——续
- Smartforms的妙用——导出和导入
- 机房程序打不开及MDI子窗体显示不全的问题
- vs2015查找功能的bug
- 数据挖掘常用算法整理
- #189 First Missing Positive
- Binary Tree Vertical Order Traversal
- 【NSBD】——系统导入导出
- Validate Binary Search Tree
- Ubuntu中Vi不能正常使用方向键问题
- easyui combobox三级联动
- Implement strStr()
- Sparse Matrix Multiplication
- 基础篇:HTML XML XHTML
- win10下安装wingw
- Unable to find explicit activity class