如何在openpyxl中移动单元格范围及其属性(超链接,格式等)?



我想创建一个脚本来移动一些(或全部(单元格。这是我的代码想法,但我不知道如何实现最后一行(向右移动 5 个单元格的示例(:

new_rows = []
for row in ws.rows:
new_rows.append((None,) * 5 + row)
ws.rows = new_rows

您还可以使用"move_range"在工作表中移动单元格范围。

这会将范围 A8:Z8 中的单元格向上移动一行,向右移动两列。

ws.move_range("A8:Z8", rows=-1, cols=2)

如果单元格包含公式,您可以添加"translate=True">

ws.move_range("A8:Z8", rows=-1, cols=2, translate=True)

您还可以在移动后添加格式。

for cell in col:
cell.number_format = '0%'

这会将单元格值转换为百分比值。

希望对您有所帮助!

经过长时间的研究,我发现没有简单而漂亮的方法来复制具有所有属性的单元格范围。您需要遍历范围,并分别针对每个单元格副本值和每个属性进行迭代。复制单个单元格的示例函数如下所示:

ws.cell(row=to_row, column=to_col).value = ws.cell(row=from_row, column=from_col).value
from_style = ws.cell(row=from_row, column=from_col)._style
ws.cell(row=to_row, column=to_col)._style = from_style
ws.cell(row=to_row, column=to_col).hyperlink = ws.cell(row=from_row, column=from_col).hyperlink
ws.cell(row=to_row, column=to_col).number_format = ws.cell(row=from_row, column=from_col).number_format

最新更新