使用openpyxl设置整列背景格式未达预期,如何实现Excel式整列格式化?
解决openpyxl整列格式设置问题
问题原因
你原来的代码只修改了C列第一个单元格,是因为新建工作簿的工作表中,只有C1是已初始化的单元格。sheet['C']只会返回工作表中已存在的单元格,所以遍历操作只作用于C1。
无需遍历的openpyxl解决方案
openpyxl支持直接通过column_dimensions设置整列的默认样式,完全模拟Excel中“格式化整列”的效果,不会生成冗余空行,后续新增的单元格还会自动继承该样式:
import openpyxl from openpyxl.styles import PatternFill # 创建新工作簿 workbook = openpyxl.Workbook() sheet = workbook.active # 定义黑色实心填充样式 black_fill = PatternFill(start_color='000000', end_color='000000', fill_type='solid') # 直接设置C列的默认填充样式 sheet.column_dimensions['C'].fill = black_fill # 保存文件 workbook.save('example.xlsx')
是否需要xlwings调用VBA?
不需要。上述openpyxl的方案已经满足需求,无需依赖xlwings或VBA。只有当你需要处理openpyxl不支持的复杂Excel特性时,才需要考虑用xlwings调用VBA的方案。
内容的提问来源于stack exchange,提问作者FluidMechanics Potential Flows
相关产品推荐
相关产品推荐

