python openpyxl insert_cols 更改合并单元格和样式

问题描述 投票:0回答:2

我尝试在 Excel 中插入一列。

但是,单元格的样式已经改变了

代码:

import openpyxl

wb = openpyxl.load_workbook('xt3.xlsx')
sheet = wb.worksheets[0]

sheet.insert_cols(0)
[enter image description here][1]wb.save("filename.xlsx")

https://i.sstatic.net/hl5QY.png

bitbucket 上的问题:https://bitbucket.org/openpyxl/openpyxl/issues/1098/bugs-insert_cols-changes-merge-cells-and

python openpyxl
2个回答
1
投票

经过一番挖掘,我在 openpyxl 和 xlrd/xlwt/xlutils 中编写了这段代码。 同时支持 xls 和 xlsx。

之前 enter image description here

之后 enter image description here

关键是使用

copy
并生成坐标。 代码是这里


1
投票

此代码将插入 3 列;它保留背景颜色,但不保留所有边框。

merged_cells_range = ws.merged_cells.ranges
for merged_cell in merged_cells_range:
    merged_cell.shift(3,0)
ws.insert_cols(1,3)

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.