使用openpyxl取消Excel工作表中的每个单元格合并

3

有没有一种方法可以使用openpyxl取消Excel工作表中的每个单元格合并。不能保证每个或任何单元格都已合并,但基本上我想在工作表中取消合并单元格(如果存在)。


1
你目前尝试了什么? - Charlie Clark
1个回答

7
您可以通过迭代工作表的merged_cells属性,并将每个合并单元格用作unmerge_cells()的参数。 unmerge_cells()接受起始行和列以及结束行和列,或者是区域字符串,但后者更容易使用,只需将来自merged_cells的值转换为str即可。
例如:
>>> ws.merged_cells
<MultiCellRange [A2:A4 A8:D11]>

for merge in list(ws.merged_cells):
    ws.unmerge_cells(range_string=str(merge))

>>> ws.merged_cells
<MultiCellRange []>

(ws.merged_cells 在取消合并单元格时似乎不适合迭代,因此使用 list() 可以避免任何问题)


你的代码在文件 \worksheet\worksheet.py:630 中生成了一个 KeyError。ws.merged_cells. ws.merged_cells.ranges 是所有范围的列表! - stansy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接