Excel如何给单元格填色,以及如何用Python 3实现单元格填色
诸神缄默不语-个人CSDN博文目录
文章目录
- 1. 在Excel中实现单元格填色
- 1. 开始 - 字体
- 2. 在单元格中右键选择填充颜色
- 2. 在Python 3中实现单元格填色
1. 在Excel中实现单元格填色
1. 开始 - 字体
2. 在单元格中右键选择填充颜色
2. 在Python 3中实现单元格填色
使用openpyxl.styles.PatternFill实现,包文档:https://openpyxl.readthedocs.io/en/stable/index.html
示例代码:
import openpyxl
from openpyxl.styles import PatternFill
from openpyxl.utils import get_column_letter
# 创建一个新的 Excel 工作簿
wb = openpyxl.Workbook()
ws = wb.active
ws.title = "Sales Data"
# 添加数据
data = [
["Region", "Manager", "Sales"],
["North", "Alice", 1000],
["South", "Bob", 1500],
["East", "Charlie", 2000],
["West", "David", 500],
]
for row in data:
ws.append(row)
# 设置列宽
for col in range(1, 4):
column_letter = get_column_letter(col)
ws.column_dimensions[column_letter].width = 20
# 给不同级别的销售设置不同的背景色
# 假设 sales > 1500 是“高”级别,1500 <= sales <= 1000 是“中”级别,sales < 1000 是“低”级别
high_fill = PatternFill(start_color="FF0000", end_color="FF0000", fill_type="solid")
medium_fill = PatternFill(start_color="FFFF00", end_color="FFFF00", fill_type="solid")
low_fill = PatternFill(start_color="00FF00", end_color="00FF00", fill_type="solid")
# 根据销售额来设置颜色
for row in ws.iter_rows(min_row=2, min_col=3, max_row=5, max_col=3): # 销售数据在第三列
for cell in row:
if cell.value > 1500:
cell.fill = high_fill
elif cell.value >= 1000:
cell.fill = medium_fill
else:
cell.fill = low_fill
# 保存文件
wb.save(r"trys\sales_data.xlsx")
Excel输出效果: