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