从身份证中提取出生日期

import openpyxl as ol  #导入openpyxl库
from openpyxl.utils import get_column_letter #导入字母和数字转换的方法
def jcbt(ws,cols): #定位身份证坐标并返回坐标
    for s in range(1, cols + 1): #遍历第一行数据,
        date1 = ws.cell(1, s)
        date1_value = date1.value
        if date1_value == '身份证': #查找---身份证---位置
            zb = date1.coordinate
            return zb
wb=ol.load_workbook(r'C:\Users\ZJ\Desktop\输出练习\学生信息模板.xlsx')#读取工作簿
ws=wb.active #读取活动工作表
rows=ws.max_row #获取工作表最大行数
cols=ws.max_column #获取单元格列数
zb1=jcbt(ws,cols) #得到单元格坐标
zb1_x=ws[zb1].column #得到单元格列数   数字
ws.insert_cols(zb1_x+1,1) #插入列
ws.column_dimensions[get_column_letter(zb1_x)].width=30 #设置列宽
ws.column_dimensions[get_column_letter(zb1_x+1)].width=30 #设置列宽
ws['{}{}'.format(get_column_letter(zb1_x+1),1)]='出生日期(年,月,日)' #写入列表头
z_cr=get_column_letter(zb1_x+1) #得到下一列的列数   字母
for ss in range(2,rows+1): #按数据行数循环,跳过第一行表头
    date2=ws['{}{}'.format(get_column_letter(zb1_x),str(ss))] #读取此列每行的单元格
    date2_value=date2.value.strip()  #去除单元格内数据的前后空格
    if len(date2_value)==18: #基本判断身份证对错
        ws['{}{}'.format(z_cr,str(ss))]=date2_value[6:10]+'年'+date2_value[10:12]+'月'+date2_value[12:14]+'日'
    else:
        ws['{}{}'.format(z_cr, str(ss))] = '身份证错误'
wb.save(r'C:\Users\ZJ\Desktop\输出练习\学生信息模板.xlsx') #保存工作簿
print('提取完成') #提示程序完成情况

完成了一段小代码 记录一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值