#!coding:utf-8 # Author:pymingming import xlrd import re from xlrd import open_workbook from xlutils.copy import copy def read(file, sheet_index=0): workbook = xlrd.open_workbook(file) sheet = workbook.sheet_by_index(sheet_index) # print("工作表名称:", sheet.name, "行数:", sheet.nrows, "列数:", sheet.ncols) data = [] for i in range(0, sheet.nrows): data.append(sheet.row_values(i)) return data def reg(data): regexp = r'MGG_\d{5}' pat = re.compile(regexp) MGG_all = re.findall(pat, str(data)) # 需为string格式 Mgg_unique = set(MGG_all) return Mgg_unique rexcel = open_workbook("a.xls") # 用wlrd提供的方法读取一个excel文件 rows = rexcel.sheets()[0].nrows # 用wlrd提供的方法获得现在已有的行数 excel = copy(rexcel) # 用xlutils提供的copy方法将xlrd的对象转化为xlwt的对象 table = excel.get_sheet(0) # 用xlwt对象的方法获得要操作的sheet values = reg(read(r'J:\pymingming\10.23\zhu.xlsx')) keys = reg(read(r'J:\pymingming\10.23\zhu.xlsx')) row = rows for (value,key) in zip(values,keys): table.write(row, 0, value) # xlwt对象的写方法,参数分别是行、列、值 table.write(row, 2, key) # xlwt对象的写方法,参数分别是行、列、值 row += 1 excel.save("a.xls") # xlwt对象的保存方法,这时便覆盖掉了原来的excel