zoukankan      html  css  js  c++  java
  • 银行业务-Excel文件的拆分逻辑

    一、问题:

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

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

      其中数据采集方式又以【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、表的拆分就是把信息进行展开,使每一行数据都包含明确的数据信息

      

  • 相关阅读:
    【月度盘点】《金秋10月》
    selenium简单使用
    数据解析模块BeautifulSoup简单使用
    爬虫简介
    SQLAlchemy简介
    Flask Blueprint
    Flask基于websocket的简单聊天室
    Flask send_file request
    初识Flask
    Python pip简单使用
  • 原文地址:https://www.cnblogs.com/hackxiyu/p/8386025.html
Copyright © 2011-2022 走看看