Python openpyxl匹配单元格内容删除excel指定行

该代码示例展示了如何使用Python的openpyxl库读取Excel文件,然后遍历工作表中的每一行,对比第一列的值是否在预设的目标列表内。如果不在,将该行的行号添加到待删除列表中,最后反向遍历删除这些行,以避免因删除导致的行索引错乱问题。最后,保存修改后的文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import openpyxl
from openpyxl import load_workbook

wb = openpyxl.load_workbook(filepath)
ws = wb['Sheet1']
max_row = ws.max_row

#待匹配列表

targetlist=['A','B','CC']

to_del_rows = []

#1、按列查找单元格的值是否在目标看列表中,不符合的删除所在行,把要删除的行先填入待删除列表
for row in range(1,max_row+1):

    if str(ws.cell(row,1).value) not in targetlist:#以第一列匹配为例
        to_del_rows.append(row)

#2、逆序删除,避免重复重排序后的空行

for row in reversed(to_del_rows):
    ws.delete_rows(row)

#保存

wb.save(filepath)

### 使用OpenPyxl根据指定列名或索引匹配写入数据 为了使用 `openpyxl` 库基于特定列名或索引来写入数据到 Excel 表格中,可以遵循以下方法: #### 导入库加载工作簿 首先需要导入必要的库,打开目标 Excel 文件。 ```python import openpyxl wb = openpyxl.load_workbook('example.xlsx') ws = wb.active # 获取活动的工作表 ``` #### 查找列索引 如果知道要操作的列名称,则可以通过遍历首找到该列对应的索引位置。 ```python def find_column_index(column_name, ws): """查找给定列名所在的索引""" header_row = next(ws.iter_rows(min_row=1, max_row=1)) for cell in header_row: if cell.value == column_name: return cell.column_letter raise ValueError(f"Column '{column_name}' not found.") col_idx = find_column_index("TargetColumnName", ws) # 替换 "TargetColumnName" print(col_idx) ``` #### 写入新数据 一旦获得了所需的列索引,就可以通过循环迭代其他将新的插入到相应的单元格中。 ```python data_to_write = ["value1", "value2", "value3"] # 要写入的数据列表 for idx, value in enumerate(data_to_write, start=2): # 假设从第二开始写入 ws[f"{col_idx}{idx}"] = value wb.save('updated_example.xlsx') # 另存为更新后的文件 ``` 上述代码片段展示了如何定位一列通过编程方式向其中添加多个条目。需要注意的是,在实际应用时应确保所提供的路径、列名以及待写入的内容都是有效的[^1]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值