import os
import win32com.client
import win32api
import re,time
import io
import sys
sys.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 False
for 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()