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,一经查实,立即删除!

相关文章

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

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

leetcode 2418. 按身高排序

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

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

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

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语言将csv文件中的XY轴数据转换为html波形图

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

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…

鸿蒙使用 axios

1、已安装ohpm&#xff0c;可参考上一篇 2、回到项目的根目录执行 ohpm install ohos/axios 安装成功后&#xff0c;查看项目的package 3、开放网络权限 在模块的module.json5中添加权限 "module": {"requestPermissions": [{"name": "…

黑马苍穹外卖学习Day7

文章目录 缓存菜品实现思路代码开发 缓存套餐Spring Cache入门案例实现思路代码开发 添加购物车需求分析和设计代码开发 查看购物车需求分析代码开发 清空购物车需求分析代码实现 缓存菜品 实现思路 代码开发 Controller层 RestController("userDishController") …

ROS第 6 课 编写简单的订阅器 Subscriber

文章目录 第 6 课 编写简单的订阅器 Subscriber1. 编写订阅者节点2. 测试发布者和订阅者 第 6 课 编写简单的订阅器 Subscriber 订阅器是基于编辑了发布器的基础上创建的&#xff0c;只有发布了消息&#xff0c;才有可能订阅。若未编辑发布器&#xff0c;可前往"ROS第5课 …

FlinkSQL【分组聚合-多维分析-性能调优】应用实例分析

FlinkSQL处理如下实时数据需求&#xff1a; 实时聚合不同 类型/账号/发布时间 的各个指标数据&#xff0c;比如&#xff1a;初始化/初始化后删除/初始化后取消/推送/成功/失败 的指标数据。要求实时产出指标数据&#xff0c;数据源是mysql cdc binlog数据。 代码实例 --SET t…

解决kali beef启动失败解问题

只限于出现这个提示的时候使用 卸载 ruby apt remove ruby 卸载 beef apt remove beef-xss 重新安装ruby apt-get install ruby apt-get install ruby-dev libpcap-dev gem install eventmachine 重新安装beef apt-get install beef-xss 弄完以上步骤如果还是不行就重启kali再试…

LLM之RAG实战(十六)| 使用Llama-2、PgVector和LlamaIndex构建LLM Rag Pipeline

近年来&#xff0c;大型语言模型&#xff08;LLM&#xff09;取得了显著的进步&#xff0c;然而大模型缺点之一是幻觉问题&#xff0c;即“一本正经的胡说八道”。其中RAG&#xff08;Retrieval Augmented Generation&#xff0c;检索增强生成&#xff09;是解决幻觉比较有效的…

opencv_角点检测

文章内容 一个opencv检测角点的程序 运行效果 #include <opencv2/opencv.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <iostream>using namespace cv; using namespace std;void detectCorners(M…

数据分析-Pandas如何整合多张数据表

数据分析-Pandas如何整合多张数据表 数据表&#xff0c;时间序列数据在数据分析建模中很常见&#xff0c;例如天气预报&#xff0c;空气状态监测&#xff0c;股票交易等金融场景。数据分析过程中重新调整&#xff0c;重塑数据表是很重要的技巧&#xff0c;此处选择Titanic数据…