所以这是我面临的挑战。我想将工作簿中的一个工作表中的一定范围的行和列复制到一个新工作表中。看起来很容易对吧?这里有一个问题:整个过程必须使用 python 完成,并且复制过程应该保留格式。即原始范围内的任何和所有格式都必须存在于新工作表中。(这样有效地排除了一次读取和写入一个单元格)我一直在努力思考它,但似乎无法找到一个简单优雅的解决方案。
谁能指出我正确的方向?或者也许是一些可能有帮助的文档?
您可以openpyxl
按如下方式执行此操作:
from copy import copy
import openpyxl
wb = openpyxl.load_workbook('input.xlsx')
ws1 = wb['Sheet1']
ws2 = wb['Sheet2']
for src in ws1['A1:D5']:
for cell_src in src:
cell_dst = ws2.cell(row=cell_src.row, column=cell_src.col_idx, value=cell_src.value)
for att in ['font', 'border', 'fill', 'number_format', 'protection', 'alignment']:
if cell_src.has_style:
setattr(cell_dst, att, copy(getattr(cell_src, att)))
wb.save('output.xlsx')
这应该保留大多数格式。