# -*- coding: UTF-8 -*- import datetime class GetInformation(object): def __init__(self, id): self.id = id self.birth_year = int(self.id[6:10]) self.birth_month = int(self.id[10:12]) self.birth_day = int(self.id[12:14]) def get_birthday(self): # 通过身份证号获取出生日期 birthday = "{0}-{1}-{2}".format(self.birth_year, self.birth_month, self.birth_day) return birthday def get_sex(self): # 男生:1 女生:0 num = int(self.id[16:17]) if num % 2 == 0: return 0 else: return 1 def get_age(self): # 获取年龄 now = (datetime.datetime.now() + datetime.timedelta(days=1)) year = now.year month = now.month day = now.day if year == self.birth_year: return 0 else: if self.birth_month > month or (self.birth_month == month and self.birth_day > day): return year - self.birth_year - 1 else: return year - self.birth_year from openpyxl import load_workbook workbook = load_workbook('sfztq.xlsx') sheet = workbook.active import re i=1 while i<=1762: cell_ai = sheet.cell(row=i,column=1) ai = str(cell_ai.value) id = re.sub(u"([^\u4e00-\u9fa5\u0030-\u0039\u0041-\u005a\u0061-\u007a])", "", ai) birthday = GetInformation(id).get_birthday() age = GetInformation(id).get_age() ci = sheet.cell(row=i,column=3) ci.value = age i+=1
workbook.save('sfztq.xlsx')