0
点赞
收藏
分享

微信扫一扫

在Ubuntu上搭建幻兽帕鲁服务器

东言肆语 2024-05-15 阅读 11
python

方法一

创建新的表格,将源表格的值写入新表格内(写之前check每个单元格,进行样式设置),这种做法会让“未指定样式的单元格”默认样式写入

# coding=utf-8
import pandas as pd
from openpyxl.styles import Font,PatternFill
from openpyxl.utils.dataframe import dataframe_to_rows
from openpyxl import Workbook

# 读取Excel文件
df = pd.read_excel('C:\\Users\\47651\\Desktop\\123.xlsx')
headers = list(df.columns)

# 创建新的Excel
wb = Workbook()
ws = wb.active
ws.title = "Sheet1"

for r_idx, row in enumerate(dataframe_to_rows(df, index=False, header=True), 1):  # 遍历Excel的每一行
    for c_idx, value in enumerate(row, 1):  # 遍历Excel该行的每一列
        if headers[c_idx-1] == 'wh' and ('12' in str(value)):  # 如果列名为'wh'且值包含'12',则设置字体红色、底色黄色
            cell = ws.cell(row=r_idx, column=c_idx, value=value)
            cell.font = Font(color="FF0000")  # 字体红色
            cell.fill = PatternFill(start_color="FFFF00", end_color="FFFF00", fill_type="solid")  # 底色黄色
        else:
            ws.cell(row=r_idx, column=c_idx, value=value)  #  原值写入新表格(单元格的所有样式会初始化)
wb.save("C:\\Users\\47651\\Desktop\\test_modified.xlsx")

方法二

遍历表格,将“符合条件的单元格”设置样式,其他单元格保持源样式,最后另存excel

# coding=utf-8
from openpyxl import load_workbook
from openpyxl.styles import Font, PatternFill

# 加载Excel
wb = load_workbook('C:\\Users\\47651\\Desktop\\123.xlsx')
ws = wb.active  # 获取活动工作表
headers = [cell.value for cell in ws[1]]  # 获取标题行

for r_idx, row in enumerate(ws.iter_rows(min_row=2, values_only=True), start=2):  # 遍历每一行数据,从第二行开始读写(首行标题)
    for c_idx, value in enumerate(row, start=1):  # 遍历该行的每一列
        if headers[c_idx-1] == 'wh' and '12' in str(value):  # check条件(列名为'wh'且值包含'12')
            cell = ws.cell(row=r_idx, column=c_idx)
            cell.font = Font(color="FF0000")  # 设置字体为红色
            cell.fill = PatternFill(start_color="FFFF00", end_color="FFFF00", fill_type="solid")  # 设置填充为黄色
wb.save("C:\\Users\\47651\\Desktop\\123new.xlsx")  # 另存修改后的工作簿
举报

相关推荐

0 条评论