单元格合并是很常见的操作,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)
如果要读取合并单元格里的内容,应该如何设置行号和列号呢?实验一下来看效果
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