python提取excel文件內容到新文件
阿新 • • 發佈:2018-12-31
參考:http://blog.csdn.net/cloudox_/article/details/53812213
import xlrd import xlwt import re #開啟檔案,如果沒開啟則列印錯誤 def open_excel(file): try: data=xlrd.open_workbook(file) return data except Exception as e: print (str(e)) #寫入新的excel表 def write_excel(file='result.xls',list=[]): #建立一個工作工作簿 book=xlwt.Workbook() #在上面建立sheet1,名稱為enroll sheet1=book.add_sheet('enroll') #從第0行開始講list中的row寫入新的sheet中 i=0 #list中的每一行 for app in list: #每一行中的每一列中的元素x j=0 for x in app: sheet1.write(i,j,x) #列數遞增 j=j+1 #行數遞增 i=i+1 #儲存檔案 book.save(file) def excel_table_byindex(file,colnameindex=0,by_index=0): #開啟檔案 data=open_excel(file) #取工作簿上的第一個sheet table=data.sheets()[0] #行數和列數 nrows=table.nrows ncols=table.ncols #預設第0行的值 colnames=table.row_values(colnameindex) #建立list來存每一行的值 list=[] #將第一個標題欄加入到list中 list.append(table.row_values(0)) #將滿足條件的行加入到list中 for rownum in range(1,nrows):#從標題欄的下一行開始遍歷每一個行 row=table.row_values(rownum)#某一行的資料 #如果這一行存在的話 if row: #if float(table.cell(rownum,8).value)>390.0: #將這一行的第3列值與正則表示式匹配 if re.match(r'李\s*',table.cell(rownum,2).value): #匹配成功,加入list中 list.append(row) #寫入新的excel表 write_excel('result.xls',list) return list def main(): tables=excel_table_byindex('pytest.xls') #列印每一行 for row in tables: print (row) if __name__ =='__main__': main()