Python 对Excel文件操作删除指定行的内容

您所在的位置:网站首页 excel表格如何删除一行的内容 Python 对Excel文件操作删除指定行的内容

Python 对Excel文件操作删除指定行的内容

2024-07-14 05:33| 来源: 网络整理| 查看: 265

前言:在上一次的博客中,我学习到了对Excel文件的读、写、改操作。那么如何实现对Excel文件操作删除指定行的内容呢?

假设:我们可以先将Excel文件中的内容读取到定义好的组合数据变量中,然后将组合数据变量中的指定数据删除,然后写到原文件中。

首先,我们将Excel文件中的内容读到以文件第一列key,文件的每行为value的字典dic中。

def read_excel(self,bookname, sheetname): #打开Excel文件 wb = xlrd.open_workbook(bookname) sheet = wb.sheet_by_name(sheetname) dic={} for i in range(sheet.nrows-1): lis=[] for j in range(sheet.ncols): lis.append(sheet.cell(i+1,j).value) dic[sheet.cell(i+1,0).value]=lis return dic

删除指定行内容。

def remove_order(self,num, dic4, dic2, bookname, sheetname): flag = False sum = 0 for i in dic4.keys(): if num == i and dic2[num][9]=='已退款': #判定指定属性,确定删除行 sum += 1 dic2.pop(num) self.updateExcle(dic2,'D:\pythoncode\order.xls','Sheet1',sum) flag = True break return flag

删除后写入到原表中,因为我们删除了一条记录,所以再写入到原表中时,不能够再把最后一行数据进行覆盖。因此我们需要写入一行全空的数据到组合数据中,然后再写入到原表中,这样就可以完成了!

def updateExcle(self,dic,bookname,sheetname,sum=0): wb=xlrd.open_workbook(bookname) sheet=wb.sheet_by_name(sheetname) new_wb=copy(wb) #将原有的Excel,拷贝一个新的副本 new_sheet=new_wb.get_sheet(0) m=0 for i in dic.keys(): m+=1 n=0 for j in dic[i]: new_sheet.write(m,n,j) n+=1 for h in range(m+1,m+1+sum): m+=1 n = 0 for k in dic[i]: new_sheet.write(m,n,'') n+=1 new_wb.save(bookname)

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3