所以,我试图在excelsheet中添加6行。 我用 openpyxl.worksheet.worksheet.Worksheet.insert_rows(ws,idx = 0,amount = 6) 帮助我完成任务。 该行适用于普通的excel文件。
但是,在excel文件中包含合并的单元格。该程序将无法正常工作,就像我附加的图像一样。
有人可以给我一些有关如何解决此问题的想法。我用光了所有的想法,需要一些启发。
非常感谢谁回答我的问题!
答案 0 :(得分:0)
假设您要在表格顶部添加3行,首先必须向下移动合并的单元格,然后插入这些行;
为此,我们将使用shift(col_shift=0, row_shift=0)
方法;
Help on method shift in module openpyxl.worksheet.cell_range:
shift(col_shift=0, row_shift=0) method of openpyxl.worksheet.cell_range.CellRange instance
Shift the range according to the shift values (*col_shift*, *row_shift*).
:type col_shift: int
:param col_shift: number of columns to be moved by, can be negative
:type row_shift: int
:param row_shift: number of rows to be moved by, can be negative
:raise: :class:`ValueError` if any row or column index < 1
要插入的行数必须与移位的行数一致; 因此,对于您的示例,您只需:
merged_cells_range = ws.merged_cells.ranges
for merged_cell in merged_cells_range:
merged_cell.shift(0,3)
ws.insert_rows(1,3)