我想创建一个脚本来移动一些(或所有)单元格。这是我的代码想法,但我不知道如何实现最后一行(向右移动5个单元格的例子):
new_rows = []
for row in ws.rows:
new_rows.append((None,) * 5 + row)
ws.rows = new_rows
答案 0 :(得分:1)
您还可以使用“ 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%'
这会将单元格值转换为百分比值。
希望有帮助!
答案 1 :(得分: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