【技巧】如何自动化更改电子表格中的需要修改的内容

from openpyxl import load_workbook

wb = load_workbook('123.xlsx')

ws = wb.active

def find_cells_with_text(ws, text):

found_cells = \[\]

for row in ws.iter_rows():

for cell in row:

if text in str(cell.value):

found_cells.append(cell)

return found_cells

cells_to_change = find_cells_with_text(ws, '3032021')

print(cells_to_change)

def replace_text_in_cells(cells, old, new):

for cell in cells:

cell.value = str(cell.value).replace(old, new)

replace_text_in_cells(cells_to_change, '3032021', '3032024')

wb.save('1233.xlsx')

以下是对这段代码的分析:

一、功能概述

这段 Python 代码的主要功能是在一个 Excel 文件('123.xlsx')中查找包含特定文本('3032021')的单元格,然后将这些单元格中的特定文本替换为新的文本('3032024'),最后将修改后的工作簿保存为新的文件('1233.xlsx')。

二、代码解析

  1. 导入模块和加载工作簿

    • from openpyxl import load_workbook:导入了openpyxl库中的load_workbook函数,用于加载 Excel 文件。
    • wb = load_workbook('123.xlsx'):加载名为 '123.xlsx' 的工作簿。
    • ws = wb.active:获取活动工作表,即默认打开的工作表。
  2. 定义查找函数

    • def find_cells_with_text(ws, text)::定义了一个函数,用于在给定的工作表中查找包含特定文本的单元格。
      • found_cells = []:创建一个空列表,用于存储找到的单元格。
      • for row in ws.iter_rows():for cell in row::遍历工作表中的每一行和每一个单元格。
      • if text in str(cell.value)::检查单元格的值是否包含特定文本,如果包含则将该单元格添加到found_cells列表中。
      • return found_cells:返回找到的单元格列表。
  3. 查找包含特定文本的单元格

    • cells_to_change = find_cells_with_text(ws, '3032021'):调用find_cells_with_text函数,在工作表中查找包含文本 '3032021' 的单元格,并将结果存储在cells_to_change变量中。
    • print(cells_to_change):打印找到的单元格,用于调试或查看结果。
  4. 定义替换函数

    • def replace_text_in_cells(cells, old, new)::定义了一个函数,用于在给定的单元格列表中,将特定的旧文本替换为新文本。
      • for cell in cells::遍历单元格列表。
      • cell.value = str(cell.value).replace(old, new):将单元格的值转换为字符串,并使用replace方法将旧文本替换为新文本。
  5. 替换文本并保存工作簿

    • replace_text_in_cells(cells_to_change, '3032021', '3032024'):调用replace_text_in_cells函数,将cells_to_change列表中的 '3032021' 替换为 '3032024'。
    • wb.save('1233.xlsx'):保存修改后的工作簿为 '1233.xlsx'。
相关推荐
剑神一笑1 小时前
Linux pgrep 命令详解:按名称查找进程 PID 的高效方法
linux·运维·chrome
Lumbrologist1 小时前
【零基础部署】Docker 部署 CrewAI 多 Agent 编排框架保姆级教程
运维·docker·容器
yyuuuzz2 小时前
独立站的技术基础与常见运维问题
大数据·运维·服务器·网络·数据库·aws
剑神一笑2 小时前
Linux killall 命令详解:按进程名批量终止进程的原理与实践
linux·运维·chrome
雅菲奥朗2 小时前
企业级 AI 自动化|OpenClaw 龙虾实战与认证
运维·人工智能·自动化·openclaw
江华森4 小时前
Ansible 自动化运维:从入门到实战
运维·自动化·ansible
摆烂大大王5 小时前
玩转 OpenClaw:用 TaskFlow + Heartbeat 打造自动化工作流
前端·人工智能·自动化
宋浮檀s6 小时前
应急响应——Web漏洞:命令执行+SSRF+弱口令
运维·数据库·sql·网络安全·oracle·应急响应
日取其半万世不竭6 小时前
iftop、nethogs 和 nload:Linux 服务器网络流量实时监控工具介绍
linux·运维·服务器
mounter6256 小时前
Linux 内核资源管理:控制组(cgroup)的演进与“策略组”新提案
linux·运维·服务器·cgroup·kernel