栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

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

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

文章目录
  • 一、问题-来源
  • 二、问题-困难
  • 三、问题-解决
  • 总结

一、问题-来源

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

二、问题-困难

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

三、问题-解决

Excel个人信息模板图:

数据表如下图所示:


源代码如下所示:

# coding: : # coding: utf-8
import os
import time

import pandas as pd
import openpyxl


def main():
    # 数据源表位置
    wb = openpyxl.load_workbook(r'C:Users22815Desktop12.xlsx')
    ws = wb['Sheet1']
    # word文件夹模板位置(可改文件夹名字)
    file_path = r'C:Users22815Desktop身份信息生成'
    data = pd.read_excel(r'C:Users22815Desktoptest.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库的使用,具体哪篇我忘记了,在此多谢啦。
新手小白,刚上路,有许多知识不清楚,还望大家多多指点一下我,谢谢啦。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/990677.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号