openpyxl 设置合并单元格边框问题
版本
- Python版本:3.4
- openpyxl版本:2.6.0
问题描述
在调用openpyxl操作Excel单元格,设置单元格样式的过程中出现对于合并的单元格边框设置不完全。
该操作对应的代码如下
cell_font = Font(name='等线', size=11, color=colors.BLACK)
cell_fill = PatternFill("solid", fgColor="E1FFFF")
cell_alignment = Alignment(horizontal='center', vertical='center')
cell_border = Border(left=Side(style='thin'), right=Side(style='thin'),
top=Side(style='thin'), bottom=Side(style='thin'))
self.ws.merge_cells('A2:B2')
self.ws.merge_cells('A3:B3')
self.set_cell(self.ws['A2'], "CaseName", cell_font, cell_fill, cell_alignment, cell_border)
self.set_cell(self.ws['A3'], cell_fill=cell_fill)
解决方法
在调试过程中发现,若先对单元格进行样式设置(包括边框),再将该单元格合并,即可是得合并后的单元格获得完整的边框。
cell_font = Font(name='等线', size=11, color=colors.BLACK)
cell_fill = PatternFill("solid", fgColor="E1FFFF")
self.set_cell(self.ws['A2'], "CaseName", cell_font, cell_fill, cell_alignment, cell_border)
self.set_cell(self.ws['A3'], cell_fill=cell_fill)
self.ws.merge_cells('A2:B2')
self.ws.merge_cells('A3:B3')
这样就可以完美解决合并单元格的边框设置问题。