主要参考这篇文章:
https://blog.csdn.net/qq_30990097/article/details/80853008
写的非常的简洁明了,刚开始我打算直接在当前的XLS里面删除某一行,发现不是很容易,然后就换一种思路,
把合乎条件的内容copy出去,也能达到目的。
https://blog.csdn.net/qq_35328369/article/details/81588708?utm_source=blogxgwz0
这篇文章写的不错,但是我没耐心去研究,但是最后一段说的注意事项,确实我的代码里面也碰到了。
1 安装xlwt/xlrd库,安装命令:
- pip install xlwt 只能写入文件用
- pip install xlrd 只能读取文件内容用,所以得装2个。
2 然后用了排序法,把关键的条件的那列排序,可以用代码,也可以用自带金山office就有排序,再去找到不重复的行copy出来。
#挑出Excel里面 的重复的行
import xlrd
from datetime import datetime
from xlrd import xldate_as_tuple
import xlwt
def pick_same_data(src_excel):
workbook=xlwt.Workbook(encoding='utf-8')
sheet1=workbook.add_sheet('删除之后的表格')
excel_file=xlrd.open_workbook(src_excel)
sheet_name=excel_file.sheet_names()[0]
sheet=excel_file.sheet_by_name(sheet_name)
j=0
ii=1
for i in range(1,8515):#一定会写8515行
try:
dates=sheet.row_values(ii)[4]
#print('write dates',)
sheet1.write(i,0,sheet.row_values(ii)[0])
sheet1.write(i,1,sheet.row_values(ii)[1])
sheet1.write(i,2,sheet.row_values(ii)[2])
sheet1.write(i,3,sheet.row_values(ii)[3])
sheet1.write(i,4,sheet.row_values(ii)[4])
sheet1.write(i,5,sheet.row_values(ii)[5])
sheet1.write(i,6,sheet.row_values(ii)[6])
sheet1.write(i,7,sheet.row_values(ii)[7])
sheet1.write(i,8,sheet.row_values(ii)[8])
sheet1.write(i,9,sheet.row_values(ii)[9])
sheet1.write(i,10,sheet.row_values(ii)[10])
j=ii+1
date2=sheet.row_values(j)[4]
while(dates==date2):
print(dates,date2,'------','ii=',ii,'j=',j)
#remove(j)
j=j+1
date2=sheet.row_values(j)[4]
ii=j
print('ii==',j)
except:
workbook.save(r'C:\Users\83815\Desktop\3-12\PICC-del.xlsx')
print("Excel里end 啦")
出现异常了,就把写入的文件先保存起来,同时一般异常就是文件读完了,所以应该立马停了,那里可以加个sys.exit(0)