• 【python】Excel批量处理身份证号、年龄


    # -*- 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-u9fa5u0030-u0039u0041-u005au0061-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')
  • 相关阅读:
    JSP_EL使用
    Ajax乱码问题
    Myeclipse安装svn插件(link方式)
    JAVA多线程通信
    Java序列化与反序列化(Serializable)
    Java 字符流实现文件读写操作(FileReader-FileWriter)
    Java 字节流实现文件读写操作(InputStream-OutputStream)
    JAVA环境变量配置
    Flex设置外部浏览器
    J2EE5(Servlet2.5)对EL表达式的支持
  • 原文地址:https://www.cnblogs.com/nfcf/p/12817506.html
Copyright © 2020-2023  润新知