这就是我面临的挑战。我想将一定范围的行和列从工作簿中的一个工作表复制到一个新工作表中。似乎很容易吧?这里有一个问题:整个过程必须使用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')
这应该保留大多数格式。