个人信息表填写-python3 将excel定位并复制到另一个表里

某些个人信息表的格式如图:

而原始的数据格式如下:

其中图上标注,以及帮扶责任人信息,和惠农卡号,是能够自动填写并批量生成的。代码如下:

#用xlrd.open_workbook时,添加对应的参数formatting_info=True,就可以保留原有格式了
import xlrd
import xlwt
from xlutils.copy import copy

def getBornData(number):    #获取出生日期
    dataStr = str(number)
    dateStr = dataStr[6:14]
    print(dateStr)
    born = dateStr[0:4]+'.'+dateStr[4:6]+'.'+dateStr[6:9]
    return born
def getAge(number): #获取年龄
    dataStr = str(number)
    dateStr = dataStr[6:14]
    age = 2018 - int(dateStr[0:4])
    return age

dataExcelPath = '17脱贫户原始 - 副本批量180607.xls'
writeExcelPath = '17年政策批量生成母表.xls'
# xlrd.open_workbook(dataExcelPath, formatting_info=True)
allData = xlrd.open_workbook(dataExcelPath) #读取个人信息表
tableData = allData.sheets()[0]         #获取数据表格
pepNum = 0
for i in range(1,tableData.nrows):         #遍历所有信息
    #print(tableData.row_values(i)[6])
    #tableData.row_values(i)[0]是姓名 1是身份证号 2是关系 3是民族 4是五保金 5是低保金 6是低保户 7是简介
    if tableData.row_values(i)[2]=='户主':
        print('当前户主'+tableData.row_values(i)[0])
        for j in range(1, 6):
            if i+j<tableData.nrows and tableData.row_values(i + j)[2]== '户主':
                pepNum = j
                break;
            else:
                pepNum = 1
       # print(tableData.row_values(i)[0]+'家有%d人'%(pepNum))  #pepNum是户中人口
        print('开始写入表格信息:')
        # 将数据写入母表的拷贝中,并存储母表至新的位置
        old_excel = xlrd.open_workbook(writeExcelPath, formatting_info=True)
        new_excel = copy(old_excel)
        new_excel.save('E:\PythonTest\脱贫户简介\\' + 'TEST' + '.xls')
        ws = new_excel.get_sheet(0)

        for k in range(0,pepNum):
            print(k)
            print('SS写入:姓名:' + tableData.row_values(i + k)[0])
            ws.write(1,1,tableData.row_values(i)[0])#户主姓名
            ws.write(2,1,tableData.row_values(i)[1])    #身份证号
            ws.write(3,3,getAge(tableData.row_values(i)[1]))    #年龄
            ws.write(3,5,pepNum)             #人口数
            #ws.write(14,1,tableData.row_values(i)[7])   #写入基本情况信息
            ws.write(7+k,0,tableData.row_values(i + k)[0])  #写入姓名
            ws.write(7+k,2,tableData.row_values(i + k)[3])  #写入民族
            ws.write(7+k,3,getBornData(tableData.row_values(i + k)[1]))  #写入出生日期
            ws.write(7+k,5,tableData.row_values(i + k)[2]) #与户主关系
            ws.write(7+k,6,tableData.row_values(i + k)[6])  #写入户类型
            ws.write(17, 1, tableData.row_values(i)[7])  # 写入帮扶责任人
            ws.write(17, 5, tableData.row_values(i)[8])  # 写入手机号
            ws.write(19, 5, tableData.row_values(i)[9])  # 写入惠农卡号信息
            print(tableData.row_values(i)[9])
        huzhuPath = 'E:\PythonTest\脱贫户简介\\'+tableData.row_values(i)[0]+'.xls' #构建每一个独立的excel文件
        new_excel.save(huzhuPath)

最终效果:

    这个算法需要注意的是户主和之子什么的都在一起,要先确定家庭人口,再写入数据。需要核对的就是收入,以及脱贫户的基本情况,也就是当初为什么评为贫困户的。数据工作,还是需要系统化,自动化,如果又回到手工的时代,那大量的时间都是白白浪费了,看起来似乎很辛苦,但实际上效率很低,大家都很劳累,不如多点时间入户。 

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

limaning

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值