import os import win32com.client import win32apiimport re,timeimport ioimport syssys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf-8')#这三行为了让终端显示中文dir_name = r'E:\测试' #文件路径 file_name=os.listdir(dir_name) #路径下文件名称file_dir =[os.path.join(dir_name,x) for x in file_name] #得到文件路径def matchStr(strres): if type(strres) == str: match = re.search('合同已签订',strres) if match: return True else: return False else: return Falsefor i in range(len(file_dir)): xlApp = win32com.client.Dispatch('Excel.Application') xlBook = xlApp.Workbooks.Open(file_dir[i]) try: sht = xlBook.Sheets(1) # rowNum = xlApp.ActiveWorkbook.Sheets(1).UsedRange.Rows.Count #返回文件的行数 # colNum = xlApp.ActiveWorkbook.Sheets(1).UsedRange.Columns.Count #返回文件的列数 rowNum = sht.UsedRange.Rows.Count #返回文件的行数 colNum = sht.UsedRange.Columns.Count #返回文件的列数 for row in range(rowNum,0,-1): for col in range(colNum,0,-1): if matchStr(sht.Cells(row,col).Value): print('get ',sht.Cells(row,2).Value) sys.stdout.flush() #刷新缓存区 str_rows = str(row) + ':' + str(row+1)#这里删的是合并单元格所在的行 sht.Rows(str_rows).Delete() xlBook.Save() finally: xlApp.quit()