gpt4 book ai didi

python - openpyxl - 在现有合并单元格的 excel 文件中添加新行

转载 作者:行者123 更新时间:2023-12-04 19:45:21 26 4
gpt4 key购买 nike

Before

After

所以,我试图在 excelsheet 中添加 6 行。
我用
openpyxl.worksheet.worksheet.Worksheet.insert_rows(ws,idx=0,amount=6)
帮助我完成任务。
这条线与普通的 excel 文件完美配合。

但是,当涉及到包含合并单元格的 excel 文件时。该程序将无法正常运行,就像我附加的图像一样。

有人可以给我一些关于如何解决这个问题的想法。我用尽了所有的想法,需要一些灵感。

非常感谢回答我问题的人!!

最佳答案

假设您要在表格顶部添加 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)

所以最后合并的单元格被保留
enter image description here

关于python - openpyxl - 在现有合并单元格的 excel 文件中添加新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51620536/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com