Python 使用xlwings库操作excel的简明实践分享之单元格合并与取消合并的实现与细节展示

401 阅读2分钟

单元格合并是极为常见的Excel 操作,通过合并单元格,我们可以做出很多常见的表格。本篇向大家阐述合并单元格是如何使用的,并通过实践代码进行演示。

单元格合并的基本语法

合并:Range().api.merge()

拆开:Range().api.unmerge()

操作实践

操作的原始表

image.png

简单合并两个单元格

ws['B2:B3'].merge()

image.png 合并后的值会是左上角的值,这个与Excel本身的功能是一致的。

合并的单元格再去合并的结果

合并的区域内如果已经有了别的单元格合并过,则会向原先被合并的尺寸进行扩展,并不会出错。

ws['B2:B3'].merge()
ws['B2:C2'].merge()

  image.png

图像中这个B2:C3区域,虽然第二步只是合并B2:C2,但是原先B2:B3已经被合并过,所以这里会延伸出去。

这个就像是我们在excel中选择数据一样,哪怕你想选的只是C2这个单元格,但是你在前面已经选上了B2:B3,所以拉过去的时候会自动扩展过去。

image.png

合并单元格内值的设置与获取

合并单元格之后,实际只有左上角有值。

print(ws['B2:C3'].value)

image.png

也就是说直接得出单元格的值,你不能取左上角单元格以外的位置。

 

查看单个单元格所在 的合并范围

print(ws['B2'].merge_area)

 

如果是个范围,代表的是所在的合并单元格区域,如果不在,则是返回这个单元格本身。返回值是个Range对象

image.png

查看区域内是否有合并单元格

print(ws['B2:C2'].merge_cells)

 

虽然看上去是个单元格的对象,但实际返回值是个布尔值,表示在该区域内是否有合并的单元格。

 

取消合并

使用方法:

ws['B2:C2'].unmerge()

 

会将这部分区域里的合并单元格拆开,而且是会全部拆开,如果给定的区域并不是合并单元格的全部范围,会自行扩展至全部。

比如我们有个这样的区域。

image.png

拆开A1:F4

ws['A1:F4'].unmerge()

image.png

这里面会全部的拆开来。也会涉及到G列合并单元格涉及到的范围。

以上就是我们单元格合并相关操作的全部内容,希望能对大家有所帮助。