excel 保留或删除指定行(根据条件批量删除Excel中指定行)

首页常识更新时间:2023-04-13 15:38:48

程序介绍

之前帮朋友编写了一个脚本,他的需求是在一个数据大概有一万条记录的excel表格中删除符合要求的行,需要删除的记录从一个txt文档中获取。

根据观察,发现可以根据银行账号这个字段判断该条记录是否在excel中存在。

编写步骤

根据上面的需求,我们程序需要做的任务主要有:

Ø从txt文档中提取银行账号字段;

Ø遍历excel文档,判断每一行的银行账号数据是否在txt文档存在,如果存在就删除该行;

我们一步一步用代码实现:

1、从txt文件中提取银行账号信息,保存在一个列表中

2、在excel中删除指定的行

我们首先打开excel文件并获取要操作的sheet页,定义一个变量row_n,之后遍历该sheet页里面的数据,当excel里面的数据在列表aa中存在时,使用delete_rows删掉该行数据,当不存在时row_n加1,当删除数据后,数据所处的行号是变化的,当删除数据时row_n不自动加1。

遍历完成后使用save方法保存数据。

程序代码

import chardet import openpyxl as py def get_encoding(file): with open(file, 'rb') as f: return chardet.detect(f.read())['encoding'] file = 'D:\文档\耕地补贴失败.txt' temp = open(file=file,mode='r',encoding=get_encoding(file)) lista = temp.readlines() aa = [li.split('|')[1].strip() for li in lista] wb = py.load_workbook('D:\文档\刘湾镇2021年农业补贴(上报专用).xlsx') sheet = wb['Sheet1'] max = sheet.max_row row_n = 1 for i in range(1,max 1): va = str(sheet[f'N{row_n}'].value).strip() if aa.__contains__(va): sheet.delete_rows(row_n) else: row_n = row_n 1 ,

展开阅读全文
推荐内容
热门内容
热门文章

© 2007-2022 http://www.anhuiqq.cn,All Rights Reserved.