请问如何用Python将字典“值”写入与键名相同的sheet工作表指定区域,
问题描述:
import openpyxl as op # 设置路径 path_1 = (r'E:\Python\shiyunxing\生产模板.xlsx') #模板路径 path_2 = (r'E:\Python\shiyunxing\门窗表.xlsx') #门窗表路径 path_3 = (r'E:\Python\shiyunxing\分析表.xlsx') #保存路径 #以下代码用于获取“模板”数量并生产列表 list_mb_sheet = [] wb_1 = op.load_workbook(path_1) #打开模板工作簿 mb_sheet = wb_1.worksheets for i in mb_sheet: list_mb_sheet.append(i.title) print(list_mb_sheet) #生成门窗表列表 wb_2 = op.load_workbook(path_2) ws = wb_2['门窗表'] #打开工作表 list_mcb = list(ws.values) print(list_mcb) #将列表转换成字典 dice_1 = {i[2]:i for i in list_mcb} print(dice_1) #生成分析表并保存 for i in list_mcb: #遍历门窗表 if i[1] in list_mb_sheet: #如果门窗表中系列在模板中有 sheet_name = i[2] #工作表名字为门窗编号并提前设为一个变量 fxb = wb_1.copy_worksheet(wb_1[i[1]]) #在模板中复制一个对应模板 fxb.title = sheet_name #将复制的模板命名为变量名 wb_1.save(path_3) #另存 #下面为删除模板 wb_3 = op.load_workbook(path_3) #打开新生成的模板文件 wb_3_sheet = wb_3.worksheets #获取工作表名称 for i in wb_3_sheet: #循环 if i.title in list_mb_sheet: #如果工作表名称在模板中包含 del_sheet = wb_3[i.title] #为包含的工作表名称设置变量 wb_3.remove(del_sheet) #根据变量删除对应工作表 wb_3.save(path_3) #按原路径保存 #如果字典中键名与sheet工作表名相同,将值写入sheet工作表指定行区域[A2:H2]
答
for i in dice_1:
for j in mb_sheet:
if i==j.tilte:
for k in range(8):
j[2][k]=dice_1[i][k]
答