一、问题:

  随着银行业务数据量的急剧增加,原始的人力统计数据已经不能满足要求,

  需要开发一款可以实现自动化数据统计的系统平台,进行数据的采集、加工、过滤、统计、预测

  其中数据采集方式又以【Excel】格式为人们所熟悉,那么如何把Excel表格的数据进行持久化 ?

  

二、分析:

  首先,需要把实体的Excel文件映射到数据库中,就要对表格进行拆分

  行维度:可以分为表头行、数据行,映射到数据库中就是两张表【头表、DTL表】,其中由于数据的特殊存在【DTL*表】

  列维度:每一列都包含实际的数据信息,在行维度拆分的表中,指定表实际包含的数据列

  

三、实践:

  (1)头表只有几个字段,设置列指定单元格下标即可【单位、时间、说明】

  (2)为了在DTL表中的数据有实际意义,需要在DTL表中包含头表的列【每个表单独设置同样列的代价高】

  (3)DTL表中的列只是单纯的数据列,指定列的长度和列的精度即可,单元格索引即可

  (4)DTL*表为不能直接读取的列【在列名下,存在二级标题】,必须单独出来转置为DTL*表后进行数据的读取

  (5)在配置模板的时候,如果Excel本身是倒置的,需配置转置属性以便正确读取数据

  (6)DTL*表中的列配置的时候,需要配置循环属性,【此处有疑问】

  (7)中心就是把文件包含的信息全部展开,把文件的维度降到【二维】

四、步骤详情:

  1、新建模板

    (1)新建模板,如果文件需要转置读取,配置转置属性

    (2)配置模板标识、标识位置用于校验模板版本

  2、配置头表

    (1)新建头表

    (2)配置头表包含的列【通常列单元格指定的是是具体的表格某一格下标,如A1、B3】

    (3)如果在DTL表中需要添加头表列,需要在配置完其它表后,指定包含属性

  3、配置DTL表

    (1)新建DTL表,开始行到结束行为数据行,不包含文件的第一行说明

    (2)配置列说明时,就是列的起始第一行的列说明,单元格指定为列【A、B】

    (3)如果存在特殊行,那么配置一列,指定单元格为【@】,在特殊行配置里指定具体的读取内容所在单元格

  4、配置DTL*表

    (1)新建DTL*表,一般需要携带DTL表中的说明列信息,使信息有用

    (2)如果说明列在DTL中配置了特殊行,还要在这里配置特殊行

    (3)配置列时,如果该值需要循环就需要配置循环属性

    (4)配置列时需要指定说明为一列,数据信息统一为一列

五、总结:

  1、模板表生成的表后,在数据库中只有配置的列,和文件表格列无关,配置有几列就只有几列

  2、上报数据读取时,向该表中循环插入数据,原则就是逐行插入

  3、数据上报就是获取文件配置关联的模板,然后针对每一个模板的包含配置表进行数据的填充

  4、适配的时候就是抓取文件包含的页签,进行页签匹配,匹配后查找页签对应的模板,获取配置的数表信息

  5、使用配置表信息,从文件中抓取数据循环抓取数据到数据库对应的生成表中

  6、头表的信息抓取就是读取单元格所在位置的值,插入数据库对应的头表中

  7、DTL表数据抓取时,读取列配置的位置,取值插入对应的数据库表中

  8、DTL*表的数据抓取时,需要在思想上转置,循环说明列,进行逐行的数据插入

  9、表的拆分就是把信息进行展开,使每一行数据都包含明确的数据信息

  

银行业务-Excel文件的拆分逻辑的更多相关文章

  1. C#将一个excel工作表根据指定范围拆分为多个excel文件

    C#将一个excel工作表根据指定范围拆分为多个excel文件 微软Excel没有提供直接的方法来拆分excel文件,因此要拆分一个excel文件最简单的方法可能就是手动剪切和粘贴了,除此之外,还有其 ...

  2. WPS 2019 多个sheet表拆分成独立的excel文件

    参考: https://www.cnblogs.com/hackxiyu/p/8945975.html 场景:将多个sheet表拆分成独立的excel文件 一.安装VB工具: 默认情况下:wps -- ...

  3. excel多个sheet表拆分成独立的excel文件

    一.问题: 公司做一个项目,给的用户上报文是一个包含多个sheet页的excel文件, 但是在实际处理报文数据的时候需要拆分excel文件为多个独立的报文excel文件 二.解决: (1)一个一个的复 ...

  4. C# 按部门拆分excel文件

    按照所属部门不同将excel文件拆分成多个文件 string excel_path = @"G:\zhyue\backup\2018-08-01 读取腾讯邮箱接口-获取一个月内未接收到外部邮 ...

  5. 项目一:第四天 1、快递员的条件分页查询-noSession,条件查询 2、快递员删除(逻辑删除) 3、基于Apache POI实现批量导入区域数据 a)Jquery OCUpload上传文件插件使用 b)Apache POI读取excel文件数据

    1. 快递员的条件分页查询-noSession,条件查询 2. 快递员删除(逻辑删除) 3. 基于Apache POI实现批量导入区域数据 a) Jquery OCUpload上传文件插件使用 b) ...

  6. 用python处理excel文件有多轻松?工作从未如此简单

    最近需要频繁读写 excel 文件,想通过程序对 excel 文件进行自动化处理,发现使用 python 的 openpyxl 库进行 excel 文件读写实在太方便了,结构清晰,操作简单.本文对 o ...

  7. Python 操作 MS Excel 文件

    利用 Python 对 Excel 文件进行操作需要使用第三方库: openpyxl,可执行 pip install openpyxl 进行安装 1. 导入 openpyxl 模块 导入 openpy ...

  8. NPOI操作EXCEL(四)——反射机制批量导出excel文件

    前面我们已经实现了反射机制进行excel表格数据的解析,既然有上传就得有下载,我们再来写一个通用的导出方法,利用反射机制实现对系统所有数据列表的筛选结果导出excel功能. 我们来构想一下这样一个画面 ...

  9. 效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中【附源代码下载】) 转

    效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中[附源代码下载])    本文目录: (一)背景 (二)数据库数据导入到Excel的方法比较   ...

随机推荐

  1. memcached的操作

    memcached是一个高性能的分布式内存对象缓存系统,用于动态web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库次数,从而提高动态.数据库驱动网站的速度.memcached基于 ...

  2. Hadoop学习之路(二十八)MapReduce的API使用(五)

    求所有两两用户之间的共同好友 数据格式 A:B,C,D,F,E,O B:A,C,E,K C:F,A,D,I D:A,E,F,L E:B,C,D,M,L F:A,B,C,D,E,O,M G:A,C,D, ...

  3. 五子棋项目总结 JavaScript+jQuery(插件写法)+bootstrap(模态框)

    Html部分(界面): 1.五子棋棋盘由canvas完成: 2.两个按钮,样式由bootstrap完成: 3.菜单按钮对应的模态框,可以选择游戏模式:玩家自由对战,和电脑对战,还可以指定谁先执子和哪个 ...

  4. php数组的定义和数组的赋值

    1.php执行过程 加载页面  语法检测 执行脚本 $arr=array(1,2,3); 索引数组 $arr=array("name"=>"user1", ...

  5. 20145216史婧瑶《Java程序设计》第五次实验报告

    20145216 实验五<Java网络编程> 实验内容 1.掌握Socket程序的编写 2.掌握密码技术的使用 3.设计安全传输系统 实验要求 1.基于Java Socket实现安全传输 ...

  6. concatenate

    concatenate函数的作用是对numpy数组或tensor进行拼接 >>> a = np.array([[1, 2], [3, 4]]) >>> b = np ...

  7. HttpURLConnection与HttpClient学习

    转载HttpURLConnection与HttpClient浅析 一.HttpURLConnection的使用 import org.slf4j.Logger; import org.slf4j.Lo ...

  8. mysql5.6编译安装

    1.安装编译源码所需的工具和库 yum install gcc gcc-c++ ncurses-devel perl -y yum -y install wget gcc-c++ ncurses nc ...

  9. GIT和GitHub的使用总结

    目录 一.GIT初始化设置: 创建密钥 添加远程仓库 用户名邮箱配置 Clone远程仓库 创建本地仓库 代理设置 自定义操作 二.GIT基本操作 添加到暂存区区 提交 删除 版本回退 撤销修改 三.G ...

  10. 指纹协查统计sql

     select dic.name, NVL(zc.zc_djzs,0),NVL(zc.zc_shzs,0),NVL(zc.zc_bzzs,0), NVL(zt.zt_djzs,0),NVL(zt.zt ...