Python 读取excel数据并填入excel,批量生成模板

一、问题-来源

前几天,我姐遇见了一个难题:需要从excel表格中不断读取数据并生成个人信息模板

二、问题-困难

1.首先我想到了在word当中生成个人信息模板,但是生成的模板格式错乱很严重,自己又不善精通调整;其次通过word导入excel的办法的确可以生成正确格式的个人信息表,但是无法通过以前的代码进行信息填入。
2.使用技术是:openpyxl库进行excel数据读取,pandas库进行数据的写入

三、问题-解决

Excel个人信息模板图:
在这里插入图片描述
数据表如下图所示:

在这里插入图片描述
源代码如下所示:

# coding:<encoding name> : # coding: utf-8
import os
import time

import pandas as pd
import openpyxl


def main():
    # 数据源表位置
    wb = openpyxl.load_workbook(r'C:\Users\22815\Desktop\12.xlsx')
    ws = wb['Sheet1']
    # word文件夹模板位置(可改文件夹名字)
    file_path = r'C:\Users\22815\Desktop\身份信息生成'
    data = pd.read_excel(r'C:\Users\22815\Desktop\test.xlsx')
    # 如果不存在上面的文件夹,则创建。
    if not os.path.exists(file_path):
        os.makedirs(file_path)
        print("创建文件夹成功")
    else:
        print("文件夹已存在:" + file_path)
        print("正在创建子文件夹,请稍后……")
        # 以当前时间创建文件名,这样每次生成都有记录
        documentName = time.strftime("%Y-%m-%d %H-%M-%S", time.localtime())
        file_path = file_path + '\\' + str(documentName)
        os.makedirs(file_path)
    # 遍历数据源一个一个取出数据
    for a, b, c, d, e, f, g, h, i, j in zip(
            data['姓名'], data['性别'], data['身份号码'], data['电话'], data['家庭住址']
            , data['工种'], data['编号'], data['时间'], data['班组长'], data['年龄']):
        # 修改工作表名称
        ws.title = str(a)
        # 在对应单元格填充相应数据
        ws['B2'].value = str(a)
        ws['F2'].value = str(b)
        ws.cell(row=4, column=5).value = str(c)
        ws.cell(row=4, column=2).value = str(d)
        ws.cell(row=5, column=2).value = str(e)
        ws['B3'].value = str(f)
        ws.cell(row=6, column=2).value = str(g)
        # 填充的时间格式有:00:00:00,不需要,所以去除
        ws.cell(row=6, column=5).value = str(h).replace("00:00:00", "")
        ws.cell(row=7, column=2).value = str(h).replace("00:00:00", "")
        ws['D3'].value = str(i)
        ws['D2'].value = str(j)

        # 以电影名称为名字,保存为单个工作簿
        wb.save(file_path + "/{}.xlsx".format(a))
        print(a + "的表格已生成"

if __name__ == '__main__':
    main()


总结

以上便是关于该问题的解决代码,借鉴了某个博主对于openpyxl库的使用,具体哪篇我忘记了,在此多谢啦。
新手小白,刚上路,有许多知识不清楚,还望大家多多指点一下我,谢谢啦。

  • 5
    点赞
  • 83
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值