Python实现Excel切片删除功能(附源码)

使用Python实现Excel中的“切片删除”功能(附源码)

先上效果图!!!

如下是需要处理的Excel文件,可以看到在27行和117行处的E列存在数据不一致情况,需进行“切片删除
在这里插入图片描述
运行结果图如下:
在这里插入图片描述
在这里插入图片描述

我们可以发现,E列27行至117行处的不一致数据已经被删除,即实现了在Excel文件内部进行进行**“切片化”**的数据删除操作!!!

什么是“切片删除”?

Excel中,切片是一种数据筛选工具,它允许您以交互的方式对数据进行过滤和分析。切片删除功能是指删除已创建的切片。

要删除切片,您可以按照以下步骤操作:

  1. 在Excel工作表中,单击任意一个包含切片的单元格。
  2. 在“切片工具”选项卡上,选择“切片操作”组中的“删除”按钮。或者,您可以右键单击切片,然后选择“删除”。

删除切片后,相关的切片将从工作表中移除。注意,这不会影响数据本身,只是移除了用于筛选数据的切片控件。请注意,切片删除功能只适用于Excel 2013及更高版本。在较早的版本中,删除切片的步骤可能略有不同,但大致思路是一样的。

如何使用Python进行批量Excel数据文件的切片删除功能?

delete_slices方法是openpyxl库提供的一个函数,用于删除Excel工作表中的切片。

底层原理涉及以下几个步骤:

  1. openpyxl库加载Excel文件:通过调用load_workbook函数,openpyxl库可以读取Excel文件,并将其加载到内存中以进行后续操作。
  2. 定位要操作的工作表:使用workbook['Sheet1']语句,我们选择要操作的具体工作表。这里假设工作表的名称为"Sheet1"。
  3. 删除切片:调用delete_slices方法,可以删除工作表中的所有切片。
  4. 保存修改后的Excel文件:使用save方法将修改后的Excel文件保存到硬盘上。这样可以确保我们对切片的删除操作得以保存。

openpyxl库是一个强大的Python库,它允许我们处理Excel文件的各种操作。在删除切片的底层实现中,openpyxl库会解析Excel文件的结构,并找到切片相关的数据及其位置信息。然后,它会对这些数据进行相应的删除操作,并将修改后的数据重新写入到Excel文件中。

需要注意的是,openpyxl库只能操作XLSX格式的Excel文件,无法处理旧版本(.xls)的Excel文件。

代码如下:

import pandas as pd
import openpyxl# 读取Excel文件
df = pd.read_excel('筛选后文件.xlsx')# 获取要遍历的列号,假设列号为4(第5列)
column_num = 4start_row = None
end_row = None# 标记变量
flag_A = False
flag_B = False# 保存要删除的行索引
rows_to_delete = []# 遍历指定列的数据
for index, value in df.iloc[:, column_num].items():if value == '执行机构类型':# 获取坐标cell = df.iloc[:, column_num].index[index]start_row = cell + 2  # 行索引从0开始,所以需要加1flag_A = Trueelif value == 'IO接口类型':# 获取坐标cell = df.iloc[:, column_num].index[index]end_row = cell + 2  # 行索引从0开始,所以需要加1flag_B = Trueif flag_A and not flag_B:# 添加要删除的行索引rows_to_delete.append(index)if flag_A and flag_B:break  # 找到目标字段后跳出循环# 删除行数据
df.drop(rows_to_delete, inplace=True)# 输出行号信息
print(f"执行机构类型行号: {start_row}")
print(f"IO接口类型行号: {end_row}")# 加载Excel文件
wb = openpyxl.load_workbook('筛选后文件.xlsx')
sheet = wb.active# 删除E30到E950之间的数据
column_num = 4  # E列的列号为5# 将右侧数据整体左移一列
for r in range(start_row, end_row + 1):for c in range(column_num, sheet.max_column):sheet.cell(row=r, column=c).value = sheet.cell(row=r, column=c + 1).valuesheet.cell(row=r, column=c + 1).value = None# 删除第5列(E列)
sheet.delete_cols(column_num)
wb.save('output.xlsx')

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/628805.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【MySQL】union (all) 后 order by 子查询排序不生效问题解决方案

力扣题 1、题目地址 2308. 按性别排列表格 2、模拟表 表:Genders Column NameTypeuser_idintgendervarchar user_id 是该表的主键(具有唯一值的列)。gender 的值是 ‘female’,‘male’,‘other’ 之一。该表中的每一行都包含用户的 ID…

查看服务器资源使用情况

查看服务器资源使用情况 一、top命令二、理解IOPS三、腾讯云机器cvm四、iotop五、atop六、查看内存使用情况一、top命令 "top"命令是一个Linux系统的实用工具,用于动态监视系统的运行状态。它会实时显示系统中正在运行的进程列表,并按照CPU使用率、内存使用率等指…

【前端架构】前端通用架构

一个强大的前端通用架构应该具备多种能力,以支持现代化的应用程序开发和提高开发效率。以下是一些前端通用架构应该具备的关键能力: 模块化和组件化:支持模块化开发和组件化架构,能够将应用拆分为独立的模块和组件,以便…

leetcode 2418. 按身高排序

题目 给你一个字符串数组 names ,和一个由 互不相同 的正整数组成的数组 heights 。两个数组的长度均为 n 。 对于每个下标 i,names[i] 和 heights[i] 表示第 i 个人的名字和身高。 请按身高 降序 顺序返回对应的名字数组 names 。 解题方法&#xff…

Go新项目-为何选Gin框架?(0)

先说结论:我们选型Gin框架 早在大概在2019年下旬,由于内部一个多线程上传的需求,考虑到Go协程的优势; 内部采用Gin框架编写了内部的数据上传平台BAP,采用GinVue开发,但前期没考虑到工程化思维,导…

开源世界许可证Copyleft GPL LGPL MIT BSD Apache

Copyleft Copyleft利用版权法来提供分发作品的副本和修改版本的权利,并要求在作品的修改版本中保留同样的权利。换句话说,copyleft是让创造性的作品可以自由修改,并要求作品的所有修改和扩展版本也是自由的一般方法。 GPL是首个通用的copyleft许可证。 GNU通用公共许可证(…

VUE的插槽介绍

什么是插槽 插槽(Slot)是 vue 为组件的封装者提供的功能,允许开发者在封装组件时,把不确定的、希望由用户指定的部分定义为插槽。 可以把插槽认为是组件封装期间,为用户预留的内容的占位符,在组件的使用者…

Vue3入门

文章目录 一、Vue3介绍二、Vue3项目创建1)使用vue-cli创建vue3项目2)使用vite创建vue3项目 三、Setup函数vue2的创建vue实例和vue3创建vue实例的区别 四、ref和reactive1)ref函数2)reactive函数3)reactive对比ref4&…

苹果最新系统iOS 17的调试和适配方法 - Xcode 14.3.1 真机调试指南

最近苹果发布了iOS 17作为其最新操作系统版本,作为开发者,你可能需要了解如何在Xcode 14.3.1中进行真机调试和适配。本文将为你详细介绍步骤和注意事项。 I. 检查Xcode版本 在开始之前,确保你已经安装了Xcode 14.3.1或更高版本。你可以在Xco…

利用先进的条形码识别和 OCR 技术改善机场行李处理

机场每年处理数百万件行李,主要航空公司每家运输超过 1 亿件行李。每年有 2500 万件行李被错误处理,正确处理至关重要。使用最好的技术是关键,首先是从机场到飞机的正确转乘。 行李分拣 Dynamsoft 的客户是一家机场行李分拣解决方案提供商。…

排序算法-快速排序(含C语言代码示例)

一、算法介绍 快速排序(QuickSort)是一种常用的高效排序算法,由Tony Hoare在1960年提出。它采用分治法(Divide and Conquer)策略,通过将原始数组分成较小的子数组来解决排序问题。下面是对快速排序的详细介…

c语言将csv文件中的XY轴数据转换为html波形图

目标: c语言实现一个最简化的csv转html波形图显示方案。 csv文件格式: 共两行数据,第一行是x轴数据,第二行是y轴数据。 csv文件名分为3段: 波形图名称,x轴名称,y轴名称。 c代码: int csv2html…

网络命令ping和telnet

1. 请解释ping和telnet的工作原理。 ping和telnet是两种常用的网络工具,其工作原理分别如下: ping: 目的:ping主要用于检查网络是否通畅以及测量网络连接速度。工作原理:ping是基于ICMP(Internet Control …

HTML5:dialog

JavaScript 练手小技巧&#xff1a;HTML5 的 dialog 标签制作对话框_dialog html-CSDN博客 <dialog id"dialog"> <h2 align"center">修改</h2> <input type"text" id"title1" placeholder"标题" value…

智能小程序小部件(Widget)导航、地图、画布等组件,以及开放能力、原生组件说明

智能小程序小部件(Widget)导航、地图、画布等组件&#xff0c;以及开放能力、原生组件说明。 导航组件 navigator 页面链接&#xff0c;控制小程序的跳转。navigator 子节点的背景色应为透明色。 属性说明 属性名类型默认值必填说明urlstring是跳转地址deltanumber1否当 …

海思SD3403,SS928/926,hi3519dv500,hi3516dv500移植yolov7,yolov8(9)

上一节yolov8的训练已经完成了,现在要开始做模型的转换了,这里和yolov7方式相似,但是有一些差异,尤其是yolov7的不带NMS部分的输出顺序和yolov8的输出顺序与格式是有差异的。 首先还是要自己手动加入rpn_op,这里包含了filter,sort,nms部分。 我们一个一个看,首先filter.py…

IDEA 2022.3.3 安装教程

1.下载2022.3.3版本IDEA 链接&#xff1a;https://pan.baidu.com/s/1z-Yfl7fWHgqz8SQLn2-u0g?pwd949u 提取码&#xff1a;949u 2.安装 下载完成后&#xff0c;双击exe安装包&#xff0c; 点击next 3.选择方式3 4.将下面文件复制到任意位置&#xff08;不要有中文路径&…

css 3D立体动画效果怎么转这个骰子才能看到5

css 3D立体动画效果怎么转这个骰子才能看到5 <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta http-equ…

[机缘参悟-128] :人的思想体系与架构:佛学是一套自恰的世界观、人生观、价值观的系统

目录 一、概述 二、佛学的世界观&#xff1a;世界的本质与生命的意义 三、佛学的人生观&#xff1a;人的一生 四、佛学的价值观&#xff1a;评判事事的标准 五、为什么说佛学是自恰的 六、佛学的假设与前提 七、佛学常见术语 7.1 业力&#xff08;能量、有善恶之分&…

《微信小程序开发从入门到实战》学习八十一

6.11 内部音频API 6.11.2 内部音频事件监听API 内部音频上下文对象可以设置一些事件监听函数 。在音频播放过程&#xff0c;发生 特定事件会执行特定的回调函数。代码如下&#xff1a; // 监听音频进入可以播放状态的事件&#xff0c;但不保证后面可以流畅播放 innerAudioCon…