成都CDA数据分析师|我用python,帮朋友写了一个“制作工资条”的自动化程序!本文说明代码逻辑剖析完整代码( 二 )
注意:它是被迫挤到第5行的 , 因此这一整行是原封不动搬到第5行的 , 包括它原来的公式 。 原来在第3行的时候 , 如果公式是SUM(E3:G3) , 被挤到到了第5行后 , 应该是SUM(E5:G5) , 但是它仍然是SUM(E3:G3) , 因为它是被迫的 , 所以需要我们修改公式 , 上述代码中正是使用正则将这个数字3改为了5 。
完整代码import reimport openpyxlfrom copy import copydef cell_style(cell):alignment = copy(cell.alignment) # 对齐样式border = copy(cell.border) # 边框样式fill = copy(cell.fill) # 填充样式font = copy(cell.font) # 字体样式return alignment, border, fill, fontwb = openpyxl.load_workbook('工资条.xlsx')wb.copy_worksheet(wb['工资条'])ws = wb.worksheets[-1]ws.title = 'final_工资条'# 获取每一列的值 , 拼接在一个列表中cells_rows = [[cell for cell in row] for row in ws.rows]# 获取标题header = [cell.value for cell in cells_rows[0]]# 获取标题行中 , 每个单元格中的各种样式alignment, border, fill, font = cell_style(cell=cells_rows[0][0])for i, _ in enumerate(cells_rows[1:]):if i > 0:index = i*3# 每读取一行 , 就在下方插入两行ws.insert_rows(idx=index, amount=2)# 写表头for j, v in enumerate(header):r, c = index+1, j+1cell = ws.cell(row=r, column=c)cell.value = http://news.hoteastday.com/a/vcell.alignment = alignmentcell.font = fontcell.border = bordercell.fill = fill# 更新后面的公式if cell.coordinate[:1] in ('H', 'J'):cell = ws.cell(row=r+1, column=c)cell.value = http://news.hoteastday.com/a/re.sub('\d+', str(r+1), cell.value)# 整个代码写完后 , 一定要记得保存wb.save('工资条.xlsx')[声明]本文版权归原作者所有 , 内容为作者个人观点 , 转载目的在于传递更多信息 , 如涉及作品内容、版权等问题 , 可联系本站删除 , 谢谢 。
更多内容可关注微信公众号:成都CDA数据分析师 。
推荐阅读
- 北京青年报官网|引游客进成都最高奖励300万元
- |加盟数据:谁才是时间的朋友?扒一扒中国特许连锁百强的三年浮沉
- 成都周边游|国庆该定了!避开人潮,这2条线路浓缩了金秋80%的美景!
- 成都|成都人和重庆人的差别,也太大了吧?
- 汽车|开着领克03+,去体验成都的夜和美酒!
- 吐槽姬|情人节开房数据大曝光,三成女性主动开房:爱情,是一场双向奔赴
- 金十数据|突发,日本多家车企紧急从中国等国召回480万辆车!怎么回事?
- 中型SUV|数据说话 全新一代捷途X90和吉利豪越谁更能“装”?
- 自在旅游者|四川迎来巨型高铁,投资303亿打造,不是在成都,这座城市受益最大!
- 童谣|彭州市精神文明建设办公室开展“成都优秀童谣谱曲征集”活动活动内容征集内容及创作要求投稿方式