第3节,openpyxl 合并单元格

1. openpyxl 合并单元格

单元格合并是很常见的操作,openpyxl 合并单元格使用merge_cells方法,下图是预期效果

def merge_cells(self, range_string=None, start_row=None, start_column=None, end_row=None, end_column=None):
    pass

merge_cells 的使用方法有两种,一种是指定range_string参数,一种是指定具体的行与列,先来看第一种方式

import openpyxl

def merge_cell():
    wb = openpyxl.Workbook()        # 创建一个excel文件
    sheet = wb.active               # 获得一个的工作表
    sheet.title = "省市信息"

    sheet.merge_cells("A1:A3")
    sheet.cell(1, 1, '吉林省')
    citys = ["长春", "吉林", "四平"]
    for index, city in enumerate(citys):
        sheet.cell(index+1, 2, city)

    wb.save("./data/省市信息.xlsx")


if __name__ == '__main__':
    merge_cell()

A1:A3 ,一个是合并区域的左上角,一个是合并区域的右下角单元格,第二种方法是指定合并区域的开始和结束行列号

sheet.merge_cells(start_row=1, end_row=3, start_column=1, end_column=1)

2. openpyxl 读取合并后的单元格

如果要读取合并单元格里的内容,应该如何设置行号和列号呢?实验一下来看效果

def read_merge_cell():
    wb = openpyxl.load_workbook("./data/省市信息.xlsx")
    sheet = wb.get_sheet_by_name("省市信息")
    print(sheet.cell(1, 1).value)       # 吉林省
    print(sheet.cell(2, 1).value)       # None
    print(sheet.cell(3, 1).value)       # None

if __name__ == '__main__':
    read_merge_cell()

合并后,单元格里的值存储在合并区域的左上角单元格里,因此要读取左上角单元格。

扫描关注, 与我技术互动

QQ交流群: 211426309

加入知识星球, 每天收获更多精彩内容

分享日常研究的python技术和遇到的问题及解决方案