【openpyxl】python处理excel——删除指定行

这篇具有很好参考价值的文章主要介绍了【openpyxl】python处理excel——删除指定行。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文给出了用openpyxl删除excel满足指定条件的行或列的正确示范,同时给出了一些网络资料的常见错误供读者参考

1.正确示范✔

  • 因为需要删除的行数不固定,正确示范应该采用while循环来遍历excel表,方便删除操作,网络上很多教程采用for循环,存在循环过程中行号改变的错误

  • 以下例子的功能为删除第五列为 True 的行,使用时需自行按照需求自行更改行列值和判断条件

from openpyxl import Workbook, load_workbook
excel_path = 'xxxx.xsl'
wb = load_workbook(excel_path)
ws=wb.active
max_row_num = ws.max_row #最大行数
i = 0
#以下例子的功能为删除第五列为 xxx 的行,使用时需自行按照需求自行更改行列值和判断条件
row_n = 1 #起始行
col_n = 5 #目标列
while i < max_row_num:
    if ws.cell(row=row_n,column=col_n).value == 'xxx':
        ws.delete_rows(row_n)
    else:
        # print(ws.cell(row=row_n,column=5).value,row_n,sep='\t')
        row_n+=1
    i+=1
wb.save(filename='xxxx.xlsx')
wb.close    

思路二:

  • 先遍历一遍把要删除的行号记录下来
  • 然后采用逆序删除,先删除行号大的,从下往上删
from openpyxl import load_workbook

# 基于ws删除一些行和一些列,注意没有备份,
def del_ws_rows_cols(ws, rowd, cold):  # 删除一些行和一些列,此程序不含保存操作。
    """基于ws删除一些行和一些列
    要删的行序数放在rowd表格中,要删的列序数放在cold表格中
    本程序的关键是删除的行或列序数都必须是从大的开始删除,这样才不会乱序"""
    # wb = load_workbook(flname)
    # ws = wb[sheetname]   
    rowd = sorted(rowd, reverse=True)  # 确保大的行数首先删除
    cold = sorted(cold, reverse=True)  # 确保大的列数首先删除
    for r in rowd:                     # rowd格式如:[1,3,5],表示要删除第1、3、5共三行。
        ws.delete_rows(r)
    for c in cold:                     # cold格式如:[2,6,10],表示要删除第2、6、10共三列
        ws.delete_cols(c)
    wb.save(flname)  # 记得要保存。


# 基于文件名和表格名删除一些行和一些列,注意没有备份。
# flsh是指文件名flname和表格名sheetname
def del_flsh_rows_cols(flname, sheetname, rowd, cold):  # 基于文件名和表格名删除一些行和一些列
    """基于文件名和表格名删除一些行和一些列
    要删的行序数放在rowd表格中,要删的列序数放在cold表格中
    本程序的关键是删除的行或列序数都必须是从大的开始删除,这样才不会乱序"""
    wb = load_workbook(flname)
    ws = wb[sheetname]
    rowd = sorted(rowd, reverse=True)
    cold = sorted(cold, reverse=True)
    for r in rowd:
        ws.delete_rows(r)
    for c in cold:
        ws.delete_cols(c)
    wb.save(flname)  # 记得要保存。

2.错误示范❌

错误示范一:

#coding:utf-8
import openpyxl
wb=openpyxl.load_workbook(filename='xxxxxx.xlsx')
ws=wb.active
for i in range(1,ws.max_row,1): #从第一行开始到最后一行逐行进行
    if ws.cell(row=i,column=1).value=='序号': #如果该行第一列值为‘序号’
        ws.delete_rows(i) #则删除该行
        print('删除第-',i,'-行成功!')
wb.save(filename='yyyyyyy.xlsx')

错误示范二:

#coding:utf-8
import openpyxl
wb=openpyxl.load_workbook(filename='xxxxxx.xlsx')
ws=wb.active
row_number=0
for row in ws.iter_rows():#迭代遍历每行
    if row[1].value=='序号':#给定的条件,读者可根据自身需求自定义
        row_number=row[1].row#关键步骤!获得当前行的行号!
        ws.delete_rows(row_number)
wb.save(filename='yyyyyyy.xlsx')
wb.close

这两种错误示范都是用了for循环,在遍历的过程中因为删除导致行号改变了,而遍历的行号仍然按照原始数据的行号,导致有部分数据被跳过文章来源地址https://www.toymoban.com/news/detail-529117.html

到了这里,关于【openpyxl】python处理excel——删除指定行的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python 使用 openpyxl 处理 Excel 教程

    python 操作excel 的库有很多 ,有的库只能读取 xsl 格式,比如 xlrd 库; 有的库只能写 xsl 格式,比如 xlwt 库; 有的只能读写 xslx 格式,比如 openpyxl 库 。 综合各库及 xslx 格式比较常见,所以本文主要讲解 openpyxl 库对 xslx 格式的 excel 操作。 例如当使用 Pyramid, Flask 或 Django 等 we

    2024年02月10日
    浏览(40)
  • 轻松学会Python--openpyxl库,处理Excel有如神助

    Excel是Windows环境下流行的、强大的电子表格应用。无论是在工作中还是学习中。我们几乎都在不间断的使用Excel来记录或处理一些数据。例如:可能有一个无聊的任务,需要从一个电子表格拷贝数据,粘贴到另一表格。 或者可能需要从几千上万行中挑选几行,根据各种条件稍

    2024年02月19日
    浏览(32)
  • openpyxl隐藏/删除excel某一列

    openpyxl 隐藏某一列的方法为: openpyxl 删除某一列的方法为: 注意:openpyxl尽量使用隐藏而非删除,因为删除某一列在存在有合并单元格的操作时,会出现合并单元格的相对位置不会发生变化,从而导致数据发生偏移的问题,而隐藏某一列不会出现这个问题 原始的 测试excel.

    2024年02月21日
    浏览(27)
  • python对excel删除指定行

    可以使用Python的第三方库pandas来操作Excel文件。 首先,需要使用pandas的read_excel()函数读取Excel文件: 然后,可以使用df.drop()函数删除指定行: 最后,使用df.to_excel()函数将修改后的数据写回到Excel文件中: 注意,删除操作是直接在原数据上进行的,如果希望保留原数据的话,

    2024年02月12日
    浏览(36)
  • Python:使用openpyxl读取Excel文件转为json数据

    openpyxl - A Python library to read/write Excel 2010 xlsx/xlsm files 文档 https://openpyxl.readthedocs.io/en/stable/ https://pypi.org/project/openpyxl/ 安装 环境 读取文件示例:将Excel文件读取为json数据 有如下一个文件 data.xlsx 实现代码 输出读取的json数据 读写示例

    2024年02月15日
    浏览(49)
  • python: openpyxl操作Excel

    想要在文件中插入图片文件,需要安装pillow,安装文件:PIL-fork-1.1.7.win-amd64-py2.7.exe · font(字体类):字号、字体颜色、下划线等 · fill(填充类):颜色等 · border(边框类):设置单元格边框 · alignment(位置类):对齐方式 · number_format(格式类):数据格式 · protection(保护类):写保护

    2024年02月08日
    浏览(35)
  • python基于openpyxl操作excel

    环境: python3.11 系统: ubuntu20.04 使用依赖: openpyxl 跳转官网 2.1 创建工作簿 工作簿至少要包含一个工作表(sheet), 可以使用如下来获取它 也可以创建自定义名称的工作表 2.2 查看工作簿下的所有工作表 2.3 访问/修改某个单元格数据 比如说修改A1单元格位置的参数 2.4 保存为文件 2

    2024年02月20日
    浏览(34)
  • python—openpyxl操作excel详解

    openpyxl属于第三方模块,在python中用来处理excel文件。 可以对excel进行的操作有:读写、修改、调整样式及插入图片等。 但只能用来处理【 .xlsx】 后缀的excel文件。 使用前需要先安装,安装方法: 注: 一个excel文件可看做是一个工作簿,工作簿中的一个Sheet就是一个工作表

    2024年02月04日
    浏览(32)
  • Python模块openpyxl & 操作Excel文件

    简介         openpyxl是一个用于读取和编写Excel 2010 xlsx/xlsm/xltx/xltm文件的Python库。openpyxl以Python语言和MIT许可证发布。         openpyxl可以处理Excel文件中的绝大多数内容,包括图表、图像和公式。它可以处理大量数据,支持Pandas和NumPy库导入和导出数据。Openpyxl还支持自

    2024年02月10日
    浏览(32)
  • Python使用openpyxl读写excel文件

    需求:读入sample.xlsx中的信息,通过分析其中的身份证号信息,得到每个人的出生日期,性别,年龄,所在省份,星座,属相等等,将结果写入到另一个excel文件中。 首先,要使用openpyxl第三方库需要安装,安装方法如下: 程序一开头为了能使用第三方库,需要先导入 读入

    2024年02月09日
    浏览(23)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包