写了个if判断来使用格式,openpyxi应该有自带条件格式的使用,不过我并不会
from openpyxl import load_workbook
from openpyxl.styles import PatternFill
from openpyxl.styles import Alignment
from openpyxl.styles import Border,Side
import os
base = r'C:\Users\Administrator\Desktop\办公用\季节性\Chg'
dirs = os.listdir(base)
paths = []
for file in dirs:
path = base + "\\" + file
paths.append(path)
#设置边框样式
border = Border(left=Side(border_style='thin', color='000000'),
right=Side(border_style='thin', color='000000'),
top=Side(border_style='thin', color='000000'),
bottom=Side(border_style='thin', color='000000'),
)
for path in paths:
wb = load_workbook(path)
ws = wb['Sheet1']
#循环读数据
for row in range(2, 12):
for column in range(2, 14):
try:
if ws.cell(row=row, column=column).value > 0.0:
#填充颜色
fill = PatternFill("solid", fgColor="FF0000")
ws.cell(row=row, column=column).fill = fill
#设置数字格式
ws.cell(row=row, column=column).number_format = '0.00%'
else:
fill = PatternFill("solid", fgColor="228B22")
ws.cell(row=row, column=column).fill = fill
ws.cell(row=row, column=column).number_format = '0.00%'
except:
pass
for row in range(1, 12):
for column in range(1, 14):
ws.cell(row=row, column=column).border = border
ws.cell(row=row, column=column).alignment = Alignment(horizontal='center', vertical='center')
wb.save(path)