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"
相关推荐
lpd_lt19 分钟前
AI Coding的常用Prompt技巧
python·ai·ai编程
小江的记录本21 分钟前
【JVM虚拟机】堆内存分代模型:年轻代(Eden+Survivor)、老年代、元空间Metaspace(附《思维导图》+《面试高频考点清单》)
java·前端·jvm·后端·python·spring·面试
在繁华处24 分钟前
Java从零到熟练(三):流程控制
java·开发语言·python
tedcloud12334 分钟前
DeepSeek-TUI部署教程:打造CLI AI助手环境
服务器·人工智能·word·excel·dreamweaver
asdzx671 小时前
使用 Python 快速提取 PDF 中的表格
python·pdf
无情的西瓜皮1 小时前
MCP协议实战:用Python从零搭建一个AI Agent工具服务器(保姆级教程)
服务器·人工智能·python·mcp
岁月宁静2 小时前
驾驭 AI 这匹野马:深入解析智能体 Harness 工程
vue.js·python
星恒随风3 小时前
Python 基础语法详解(一):从表达式、变量到数据类型
开发语言·笔记·python·学习
888CC++3 小时前
java 并发编程
java·开发语言·python
Dxy12393102163 小时前
python缩放图片如何保证图片质量
python