Python写一个函数实现将读取xlsx文件内容改为想要的格式,参数有字体默认微软雅黑,字号默认9,格式默认左居中,指定列的值,判断正数填充淡绿色绿色,负数填充淡粉色
时间: 2024-04-04 11:30:15 浏览: 58
好的,这个问题需要用到Python的第三方库openpyxl来读写xlsx文件,具体实现如下:
```python
from openpyxl import load_workbook
from openpyxl.styles import Font, Alignment, PatternFill
from openpyxl.utils import get_column_letter
def format_xlsx(file_path, sheet_name, column_name, positive_color='00E699', negative_color='FFB6C1', font_name='微软雅黑', font_size=9):
# 加载xlsx文件
wb = load_workbook(file_path)
# 选择对应的sheet
ws = wb[sheet_name]
# 设置字体和对齐方式
font = Font(name=font_name, size=font_size)
align = Alignment(horizontal='left', vertical='center')
# 遍历所有行
for row in ws.iter_rows(min_row=2):
# 获取指定列的值
column_value = getattr(row[0], column_name).value
# 判断正负数并设置填充颜色
if column_value > 0:
fill = PatternFill(start_color=positive_color, end_color=positive_color, fill_type='solid')
elif column_value < 0:
fill = PatternFill(start_color=negative_color, end_color=negative_color, fill_type='solid')
else:
fill = None
# 设置单元格格式
for cell in row:
cell.font = font
cell.alignment = align
if fill:
cell.fill = fill
# 保存修改后的xlsx文件
wb.save(file_path)
```
这个函数接受四个参数,分别是文件路径、sheet名称、指定列的列名以及正数和负数的填充颜色(默认值为淡绿色和淡粉色)。函数会遍历指定sheet的所有行,获取指定列的值并判断正负数,设置对应的填充颜色以及字体和对齐方式,并将修改后的xlsx文件保存。
阅读全文