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

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'。
相关推荐
草莓熊Lotso15 分钟前
Linux 进阶指令实操指南:文件查看、时间管理、搜索压缩全场景覆盖(附高频案例)
linux·运维·服务器
晋人在秦 老K15 分钟前
鼠标连点效率低?MouseClickTool 2.0三步配置,自动化操作提速80% 重复点击太耗时?Windows鼠标连点器实操教程,开发测试效率翻倍
windows·自动化·计算机外设·鼠标连点器·gui模拟点击·自动化点击解决方案
Cx330❀15 分钟前
《Linux进阶指令实操指南》:文件查看、时间管理、搜索压缩全覆盖(附高频案例)
linux·运维·服务器
喵叔哟1 小时前
63.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--新增功能--预算告警
运维·微服务·.net
Akshsjsjenjd1 小时前
Docker资源限制详解
运维·docker·容器
yalipf1 小时前
忘记密码更改ubuntu18.08的密码--前提是要知道用户名work
linux·运维·ubuntu
雲帝3 小时前
1panel docker开启swap内存
运维·docker·容器
web安全工具库3 小时前
Makefile 模式规则精讲:从 %.o: %.c 到静态模式规则的终极自动化
linux·运维·c语言·开发语言·数据库·自动化
Do_GH10 小时前
【Linux】07.Ubuntu开发环境部署
linux·运维·ubuntu
勤源科技10 小时前
全链路智能运维中的实时流处理架构与状态管理技术
运维·架构