dict(字典) 与 list(列表) 的结合使用,主要目的是想存储表的基本信息及该表所在 excel 中的行记录。主要是本人记录备忘,不建议参照。

* dict(字典) 与 list(列表) 的结合使用,主要目的是想存储表的基本信息及该表所在 excel 中的行记录。 

1、手动测试部分
dic = {'T05_DEP_ACCT_OPEN_CLOSE_BK1': ['T05_DEP_ACCT_OPEN_CLOSE_BK1', '存款开销户登记簿', '存款开销户登记簿', 2], 'T05_DEP_ACCT_OPEN_CLOSE_BK2': ['T05_DEP_ACCT_OPEN_CLOSE_BK2', '存款开销户登记簿', '存款开销户登记簿', 32]} list = [2, 32, 62] print(list[1]) for i in enumerate(dic): key = i[1] sub_list = dic[key] sub_list.append(list[i[0]+1]) dic[key] = sub_list print(dic)



2、测试后放入正式代码中,具体如下:
current_path = os.path.abspath('.').replace('\\', '/')
dir_mapping = current_path + '/mapping/latest/'
def func_mapping_hand():
    mapping_names = os.listdir(dir_mapping)
    for mapping_name in mapping_names:
        sys_name_mapping = mapping_name.split('.')[0]
        resource_trans_file_mapping = dir_mapping + mapping_name
        result_trans_file = dir_resource + sys_name_mapping + '.xlsx'
        Model.func_createWorkbook(result_trans_file)

        workbook_mapping = xlrd.open_workbook(resource_trans_file_mapping)
        worksheet_mapping = workbook_mapping.sheet_by_name(u'宽表模型字段级')
        max_rows = worksheet_mapping.nrows
        mapping_list = []
        dic = {}
        n = 1
        for row_i in range(worksheet_mapping.nrows):
            cell_value = str(worksheet_mapping.cell(row_i, 3).value).strip()
            if cell_value == '银行号':
                tab_en_name = str(worksheet_mapping.cell(row_i, 0).value).strip() + str(n)
                tab_ch_name = str(worksheet_mapping.cell(row_i, 1).value).strip()
                tab_desc = str(worksheet_mapping.cell(row_i, 1).value).strip()
                mapping_list.append(row_i)
                # 基础信息  tab_en_name:表英文名, tab_ch_name:表中文名, tab_desc:表描述, st_row:开始行, end_row:结束行
                st_row = row_i
                dic[tab_en_name] = [tab_en_name, tab_ch_name, tab_desc, st_row]
                n += 1
        mapping_list.append(max_rows)

        for i in enumerate(dic):
            key = i[1]
            sub_list = dic[key]
            sub_list.append(mapping_list[i[0] + 1])
            dic[key] = sub_list

        for sub_dic in dic:
            mapping_sheet_name = sub_dic
            # 转换表,将逻辑映射转为物理映射
            worksheet_trans0 = wb0.Worksheets('trans_model')
            workbook_trans2 = excel.Workbooks.Open(result_trans_file)
            worksheet_trans2 = workbook_trans2.Worksheets("Sheet")
            Model.func_trans(ws0=worksheet_trans0, wb2=workbook_trans2, ws2=worksheet_trans2,
                             sheet_name=mapping_sheet_name)
        worksheet_trans2.Delete()
        workbook_trans2.Save()
        workbook_trans2.Close()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值