Python 对Excel文件操作删除指定行的内容 |
您所在的位置:网站首页 › excel表格如何删除一行的内容 › Python 对Excel文件操作删除指定行的内容 |
前言:在上一次的博客中,我学习到了对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 |