- 一、问题-来源
- 二、问题-困难
- 三、问题-解决
- 总结
前几天,我姐遇见了一个难题:需要从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库的使用,具体哪篇我忘记了,在此多谢啦。
新手小白,刚上路,有许多知识不清楚,还望大家多多指点一下我,谢谢啦。



