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('提取完成') #提示程序完成情况
完成了一段小代码 记录一下。