使用Python的openpyxl无法修改Excel单元格背景色怎么办?
解决openpyxl修改Excel单元格背景色无效的问题
你的代码存在两个关键问题,导致单元格颜色未发生变化,修正后即可正常生效:
1. load_workbook函数调用错误
你仅导入了openpyxl模块,但直接使用load_workbook()属于未定义调用,需要通过openpyxl.load_workbook()调用,或者单独导入该函数。
2. 颜色格式不符合openpyxl要求
openpyxl的PatternFill要求颜色使用8位ARGB格式(Alpha通道+RGB),你使用的6位RGB值无法被正确识别,红色对应的正确ARGB值为FFFF0000。
修正后的完整代码
import os from openpyxl import load_workbook from openpyxl.styles import PatternFill # 用os.path.join避免不同系统的路径分隔符问题 file_path = os.path.join(os.getcwd(), 'File.xlsx') wb = load_workbook(file_path) sheet = wb.active # 选中A1单元格并设置红色填充 cell = sheet['A1'] red_fill = PatternFill(start_color='FFFF0000', end_color='FFFF0000', fill_type='solid') cell.fill = red_fill wb.save(file_path)
额外提示
- 确保操作的Excel文件是
.xlsx或.xlsm格式,openpyxl不支持旧版.xls格式 - 保存文件时,目标Excel不能被其他程序(如Excel客户端)占用,否则会导致保存失败或文件损坏
内容的提问来源于stack exchange,提问作者MMG
相关产品推荐
相关产品推荐

