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

时间:2018-09-13 09:30:05

标签: python openpyxl

我试图在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.stack.imgur.com/hl5QY.png

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

之前 enter image description here

之后 enter image description here

关键是使用copy并生成坐标。 代码是here