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

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:CentOS 7 解压 7zip 压缩的文件
linux·运维·centos
soulteary1 小时前
突破内存限制:Mac Mini M2 服务器化实践指南
运维·服务器·redis·macos·arm·pika
运维&陈同学2 小时前
【zookeeper01】消息队列与微服务之zookeeper工作原理
运维·分布式·微服务·zookeeper·云原生·架构·消息队列
是阿建吖!2 小时前
【Linux】进程状态
linux·运维
明明跟你说过3 小时前
Linux中的【tcpdump】:深入介绍与实战使用
linux·运维·测试工具·tcpdump
Mr_Xuhhh4 小时前
重生之我在学环境变量
linux·运维·服务器·前端·chrome·算法
朝九晚五ฺ11 小时前
【Linux探索学习】第十四弹——进程优先级:深入理解操作系统中的进程优先级
linux·运维·学习
Kkooe12 小时前
GitLab|数据迁移
运维·服务器·git
久醉不在酒13 小时前
MySQL数据库运维及集群搭建
运维·数据库·mysql
虚拟网络工程师14 小时前
【网络系统管理】Centos7——配置主从mariadb服务器案例(下半部分)
运维·服务器·网络·数据库·mariadb