嗨玩手游网

根据条件批量删除Excel中指定行

程序介绍

之前帮朋友编写了一个脚本,他的需求是在一个数据大概有一万条记录的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 chardetimport openpyxl as pydef 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_rowrow_n = 1for 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

如何快速删除 Excel 多行多列中的重复项,还不能破坏表格布局?

很多同学会觉得 Excel 单个案例讲解有些碎片化,初学者未必能完全理解和掌握。不少同学都希望有一套完整的图文教学,从最基础的概念开始,一步步由简入繁、从入门到精通,系统化地讲解 Excel 的各个知识点。

现在终于有了,以下专栏,从最基础的操作和概念讲起,用生动、有趣的案例带大家逐一掌握 Excel 的操作技巧、快捷键大全、函数公式、数据透视表、图表、打印技巧等……学完全本,你也能成为 Excel 高手。

今天教大家一个小技巧,如何在有重复值的多行多列数据表中,快速删除指定的文本或数值。

只需要借用一个平时常用的快捷键,即可迅速实现需求。

案例:

将下图 1 中所有“诸葛钢铁”单元格批量一起删除,而且删除后的数据表不能错列。

效果如下图 2 所示。

解决方案:

1. 选中所有姓名所在的 A2:C8 区域 --> 按 Ctrl+F

2. 在弹出的对话框的“查找内容”文本框中输入“诸葛钢铁”--> 点击“查找全部”按钮

所有姓名为“诸葛钢铁”的单元格都查找出来了。

3. 选中所有查找结果 --> 关闭“查找和替换”对话框

有同学曾经问我:你经常写选中所有查找结果、所有列……到底如何选中所有?按住 Shift 键,用鼠标依次点击区域的第一和最后一项即可。

此时已经选中了数据表中所有姓名为“诸葛钢铁”的单元格。

4. 将鼠标放到任意选中的单元格处 --> 右键单击 --> 在弹出的菜单中选择“删除”

5. 在弹出的对话框中选择“下方单元格上移”--> 点击“确定”按钮

数据表中再也没有“诸葛钢铁”,燕过无痕,完全不影响表格布局。

更多攻略
游戏推荐
更多+