python 设置 win32 excel 设置 非连续单元格 背景色

python 复制代码
import win32com.client as win32

def select_and_color_cells(file_path, sheet_name, search_text):
    # Create a new Excel application
    excel = win32.Dispatch("Excel.Application")

    # Open the workbook
    workbook = excel.Workbooks.Open(file_path)

    # Select the active sheet
    sheet = workbook.Sheets(sheet_name)



    # 获取第一列的范围
    first_column_range = sheet.Range(sheet.Cells(1, 1), sheet.Cells(sheet.UsedRange.Rows.Count, 1))

    # 将第一列的值读取到一个 Python 列表中
    first_column_list = [str(cell.Value) for cell in first_column_range]
    print('first_column_list',first_column_list)

    new_list = []
    for index, value in enumerate(first_column_list):
        if value and search_text in value:
            # 将单元格的背景色设为绿色
            new_list.append(index)


    #
    new_list = [f"A{index + 1}" for index in new_list]
    print('new_list',new_list)

    color = 65535  # 背景色,这里使用颜色的索引,65535代表黄色
    # 将所有要设置背景色的单元格地址拼接成一个字符串
    cell_range = ",".join(new_list)
    # 使用 Range 对象的 Union 方法获取所有要设置背景色的单元格范围
    cells = sheet.Range(cell_range)
    # 设置背景色
    cells.Interior.Color = color



# Example usage
file_path = r"C:\Users\Administrator\Documents\Book1 - 副本.xlsx"
sheet_name = "Sheet1"  # Replace with the name of your sheet
search_text = "11"

select_and_color_cells(file_path, sheet_name, search_text)
python 复制代码
import win32com.client as win32

def set_cell_background_color(file_path, sheet_name, cell_addresses, color):
    excel = win32.gencache.EnsureDispatch("Excel.Application")
    excel.Visible = True

    workbook = excel.Workbooks.Open(file_path)
    sheet = workbook.Worksheets(sheet_name)

    try:
        color = 65535  # 背景色,这里使用颜色的索引,65535代表黄色
        # 将所有要设置背景色的单元格地址拼接成一个字符串
        cell_range = ",".join(cell_addresses)
        # 使用 Range 对象的 Union 方法获取所有要设置背景色的单元格范围
        cells = sheet.Range(cell_range)
        # 设置背景色
        cells.Interior.Color = color
    except Exception as e:
        print(f"Error occurred: {str(e)}")
    finally:
        # workbook.Save()
        # excel.Quit()
        pass

# 使用示例
file_path = r"C:\Users\Administrator\Documents\Book1 - 副本.xlsx"

sheet_name = "Sheet1"
cell_addresses = ["A1", "B3", "C5", "D7"]  # 非连续的单元格地址列表
color = 65535  # 背景色,这里使用颜色的索引,65535代表黄色

set_cell_background_color(file_path, sheet_name, cell_addresses, color)



# 示例用法
file_path = r"C:\Users\Administrator\Documents\Book1 - 副本.xlsx"
sheet_name = "Sheet1"  # 替换为您的工作表名称
search_text = "11"
相关推荐
写代码的【黑咖啡】11 小时前
Python中的JSON处理(标准库)
开发语言·python·json
梨子串桃子_18 小时前
推荐系统学习笔记 | PyTorch学习笔记
pytorch·笔记·python·学习·算法
Bruce_Liuxiaowei19 小时前
基于HTA的Meterpreter反向Shell攻击实验
网络·windows·经验分享·网络安全·渗透测试
文言一心19 小时前
LINUX离线升级 Python 至 3.11.9 操作手册
linux·运维·python
诗词在线20 小时前
中国古代诗词名句按主题分类有哪些?(爱国 / 思乡 / 送别)
人工智能·python·分类·数据挖掘
高锰酸钾_20 小时前
机器学习-L1正则化和L2正则化解决过拟合问题
人工智能·python·机器学习
2401_8823515220 小时前
Flutter for OpenHarmony 商城App实战 - 会员中心实现
windows·flutter
天天睡大觉20 小时前
Python学习11
网络·python·学习
智航GIS20 小时前
11.11 Pandas性能革命:向量化操作与内存优化实战指南
python·pandas