【发布时间】:2026-01-20 01:05:01
【问题描述】:
我正在尝试将工作表 default_sheet 复制到同一工作簿中的新工作表 new_sheet。
我确实设法创建了一个新工作表并从默认工作表中复制了值。如何将每个单元格的样式也复制到 new_sheet 单元格中?
new_sheet = workbook.create_sheet()
new_sheet.title = sheetName
default_sheet = workbook.get_sheet_by_name('default')
new_sheet = workbook.get_sheet_by_name(sheetName)
for row in default_sheet.rows:
col_idx = float(default_sheet.get_highest_column())
starting_col = chr(65 + int(col_idx))
for row in default_sheet.rows:
for cell in row:
new_sheet[cell.get_coordinate()] = cell.value
<copy also style of each cell>
我目前正在使用 openpyxl 1.8.2,但我想切换到 1.8.5。
一种解决方案是复制:
from copy import copy, deepcopy
new_sheet._styles[cell.get_coordinate()] = copy(
default_sheet._styles[cell.get_coordinate()])
【问题讨论】:
-
我找到了一种复制方式,但我不确定这是否是最好的方式,并且它不会复制单元格的宽度/高度等所有内容!
-
是的,您需要使用复制。每个工作表都有一个可以复制的单元格样式字典。但是你真的想尝试使用 1.9 分支,它有一个更干净的界面来处理这类事情。