• python 利用插入空行的方式制作工资条表格


    版本信息:

     需求:

     脚本:

    # import
    import re
    import openpyxl
    from copy import copy
    
    # 封装函数
    def cell_style(cell):
        '''获取给定单元格的四大样式属性'''
        alignment = copy(cell.alignment)    # 对齐方式
        border = copy(cell.border)    # 单元格边框样式
        fill = copy(cell.fill)   # 单元格填充样式
        font = copy(cell.font)    # 单元格值的字体属性
        return alignment, border, fill, font
    
    wb = openpyxl.load_workbook('工资信息.xlsx')  # 加载工作簿
    wb.copy_worksheet(wb['工资条'])
    ws = wb.worksheets[-1]
    ws.title = '工资条_2'    # 重命名 sheet
    
    
    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(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+1
                cell = ws.cell(row=r, column=c)
                cell.value = v
                cell.alignment = alignment
                cell.font = font
                cell.border = border
                cell.fill = fill
                # 更新公式
                if cell.column_letter in ('H', 'J'):
                    cell = ws.cell(row=r+1, column=c)
                    cell.value = re.sub('d+', str(r+1), cell.value)
    
    wb.save('test.xlsx')
    

    excel 结果:

    按:

    随着 openpyxl 的更新,其功能越发强大。

  • 相关阅读:
    091115 T UI生成的类
    090717 T OOD时的接口
    090713 T 数组不OO
    090723 T Code Generate 的思考
    091101 T IModel
    091018 CH 培训方法论总结
    090615 T 数据库范式
    写程序,逻辑优先!
    091117 T else if 的写法
    091015 CH 培训所想到的
  • 原文地址:https://www.cnblogs.com/shanger/p/13184082.html
Copyright © 2020-2023  润新知