========================================
业务背景介绍
========================================
光大银行个贷风险管理系统上线前,需要将每个分行上报的补登数据(Excel格式),共30个分行,需要按类别将这些补登数据导入到指定的表中
根据需要,组织文件分类如下图(只列出部分文件):
D:\EXCELFILE
├─代保管品
│ 3550北京分行本部.xls
│ 3640沈阳分行本部.xls
│ 3650上海分行本部.xls
│ 3780济南分行本部.xls
│
├─借款人信息
│ 3550北京分行本部.xls
│ 3570大连分行本部.xls
│ 3590长春分行本部.xls
│ 3600黑龙江分行本部.xls
│ 3640沈阳分行本部.xls
│ 3750厦门分行本部.xls
│ 3780济南分行本部.xls
│
└─工程机械信息
3550北京分行本部.xls
3570大连分行本部.xls
3590长春分行本部.xls
3600黑龙江分行本部.xls
3640沈阳分行本部.xls
3650上海分行本部.xls
3703苏州分行本部.xls
3750厦门分行本部.xls
3780济南分行本部.xls
30家分行,共120多个文件,接近50万条记录,显然手工导入是不现实的,而且手工操作,容易出错。在这种北京下,编写了此程序
=======================================
1.基础配置类
=======================================
1.1 数据库配置 db_conection
-----------------------------------
driver_class:指定数据库的JDBC驱动类
url :连接数据URL
user :登录数据库用户ID
pass :登录数据库密码
1.2 文件路径信息 base_config
-----------------------------------
home_direction:存放Excel文件的家目录
log_file :定义日志文件的全路径
=======================================
2.业务信息配置
=======================================
2.1 检查清单配置 org_check_list
----------------------------------
检查几个类别的文件夹中该检查清单列表内的文件是否都存在,如果文件不存在,则会在日志中作相应记录
org_item 节点的org_info属性值格式:机构号机构名,如:3550北京分行本部
2.2 每类文件统一配置 excel_unit
----------------------------------
id :唯一标识该节点的ID值(目前系统中没使用此字段,只是为了方便辨认)
enable :此单元是否可用,如果配置为false则,不会运行此单元
cell_is_null_log:指定该类别的文件中,如果单个文件的单个单元格有空单元格的情况下,是否记录日志
folder_name :指定存放该类文件的文件夹
describe :该单元描述信息(目前系统中也没使用)
sheet_index :指定该类文件存放在Excel文件中sheet页的索引(从0开始)
start_row :该类文件读取的开始行(-1表示无限制,从第1行开始读取),行号为Excel的实际行号而非从0开始
end_row :该类文件读取的结束行(-1表示无限制,读取到最末行),行号为Excel的实际行号而非从0开始
start_column :该类文件读取的开始列(-1表示无限制,从第A列开始读取),列号为Excel的实际列名,如A,B,C
end_column :该类文件读取的结束列(-1表示无限制,读取到最末列),列号为Excel的实际列名,如A,B,C
target_table 目标表配置
- - - - - - - - - - - - -
table_name :插入到数据库中实际的表名
table_chinese_name:表的中文名(系统中目前未使用)
column_map 配置
- - - - - - - - - - - - -
db_column :数据库的列名(数据库中实际存在的字段名)
file_column :文件列号(Excel文件实际列号,如A,B,C),通过这里的建立映射关系,就可以把该列数据插入到数据表的指定列中了
ctrl_char_replace :如单元格中出现了空格以及其他的控制字符,用该属性指定的值来替换,若为空,则相当于去除单元格中的控制字符
format_check :单元格检查正则表达式,如果单元格中内容不匹配此正则表达式,则系统拒绝将此Excel文件中的数据插入到数据表中
format_str :该列值读取后,格式化字符串,如果格式化字符串异常,则拒绝读取
required :该列是否必需,相当于数据库中的主键,若该单元格为空,系统则认为该行为空,就跳过该行,不插入
index :索引号,指定序列(系统中目前也没使用此属性)
=======================================
3.运行说明
=======================================
配置好以后,window环境下,直接运行Execute.bat则可
unix环境下,执行Excute.sh则可
=====================================================================================================================
如果您能把这个程序改得更通用些,希望不吝惜赐教。Email:yangsong158@163.com