openpyxl带格式复制粘贴单元格内容

openpyxl的复制粘贴流程如下:

  1. 框定复制的区间:active_sheet['A1':'B11']
  2. 框定粘贴的左上角的单元格:active_sheet['D1']
  3. 然后循环复制范围内的每一个单元格,滑动赋值即可,滑动的时候使用:
    paste_to_cell.offset(row=0, column=1)  # 右移1格
    

示例程序

from copy import deepcopy

import openpyxl


def copy_cell(copy_from, paste_to_cell):
    """复制粘贴某个区域
    :param copy_from 复制源
    :param paste_to_cell 粘贴的左上角
    """
    # 记录边缘值
    for _copy_row in copy_from:  # 循环每一行
        for _row_cell in _copy_row:  # 循环每一列
            paste_to_cell.value = _row_cell.value
            paste_to_cell._style = deepcopy(_row_cell._style)  # 复制样式
            paste_to_cell = paste_to_cell.offset(row=0, column=1)  # 右移1格
        paste_to_cell = paste_to_cell.offset(row=1, column=-len(_copy_row))


def main():
    wb = openpyxl.load_workbook("测试.xlsx")
    active_sheet = wb.worksheets[0]
    copy_cell(active_sheet['A1':'B11'], active_sheet['D1'])
    wb.save("复制后_测试文件.xlsx")


if __name__ == '__main__':
    main()

比如【测试.xlsx】的文件内容是:

openpyxl带格式复制粘贴单元格内容_第1张图片
复制后的【复制后_测试文件.xlsx】内容是:

openpyxl带格式复制粘贴单元格内容_第2张图片

你可能感兴趣的:(自动化办公,excel)