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

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'。
相关推荐
摸鱼也很难29 分钟前
Docker 镜像加速和配置的分享 && 云服务器搭建beef-xss
运维·docker·容器
woshilys1 小时前
sql server 查询对象的修改时间
运维·数据库·sqlserver
疯狂飙车的蜗牛2 小时前
从零玩转CanMV-K230(4)-小核Linux驱动开发参考
linux·运维·驱动开发
恩爸编程2 小时前
探索 Nginx:Web 世界的幕后英雄
运维·nginx·nginx反向代理·nginx是什么·nginx静态资源服务器·nginx服务器·nginx解决哪些问题
Michaelwubo4 小时前
Docker dockerfile镜像编码 centos7
运维·docker·容器
好像是个likun4 小时前
使用docker拉取镜像很慢或者总是超时的问题
运维·docker·容器
cominglately7 小时前
centos单机部署seata
linux·运维·centos
CircleMouse7 小时前
Centos7, 使用yum工具,出现 Could not resolve host: mirrorlist.centos.org
linux·运维·服务器·centos
程序猿000001号7 小时前
Selenium 深度解析:自动化浏览器操作的利器
selenium·测试工具·自动化
Karoku0667 小时前
【k8s集群应用】kubeadm1.20高可用部署(3master)
运维·docker·云原生·容器·kubernetes