python3实现excel行分级
1. 在excel中实现分级
选择指定行后,点击 数据 - 分级显示 - 组合


然后就可以点击加减号展开或折叠了。
2. excel分级
用openpyxl的row_dimensions.group()实现。
官方文档:https://openpyxl.readthedocs.io/en/3.1/api/openpyxl.worksheet.dimensions.html
示例代码:
from openpyxl import load_workbook wb = load_workbook(r"成本.xlsx") ws = wb.active # 创建分组 ws.row_dimensions.group(8, 96, outline_level=1) ws.row_dimensions.group(10, 37, outline_level=2) ws.row_dimensions.group(39, 67, outline_level=2) # 设置分组折叠按钮位置 ws.sheet_properties.outlinepr.summarybelow = false wb.save(r"trys\grouped_table.xlsx")
原xlsx文档没有分级,分级后的效果就是这样,你懂吧你就理解一下这个行和分级的分布是这样的:



python3实现单元格填色
1. 在excel中实现单元格填色
1. 开始 - 字体

2. 在单元格中右键选择填充颜色

2. 单元格填色
使用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输出效果:

到此这篇关于python3实现excel行分级与单元格填色的文章就介绍到这了,更多相关python3 excel内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论