江苏省住房城乡建设厅网站首页,东莞做网站-南城信科,建设网站教程,品牌设计公司 知乎背景需求#xff1a;
已经制作了本学期的中4班自主游戏观察记录表
【办公类-16-10-01】“2023下学期 中4班 自主游戏观察记录#xff08;python 排班表系列#xff09;-CSDN博客文章浏览阅读398次#xff0c;点赞10次#xff0c;收藏3次。【办公类-16-10-01】“2023下学…
背景需求
已经制作了本学期的中4班自主游戏观察记录表
【办公类-16-10-01】“2023下学期 中4班 自主游戏观察记录python 排班表系列-CSDN博客文章浏览阅读398次点赞10次收藏3次。【办公类-16-10-01】“2023下学期 中4班 自主游戏观察记录python 排班表系列https://blog.csdn.net/reasonsummer/article/details/136262898
我想给中2、中3、中4、中5、中6、中7班都制作一份《自主游戏观察记录表》
参考《中班游戏场地周次安排表含“场地”版》
【办公类-16-07-04】合并版“2023下学期 中班户外游戏有场地和无场地版一周一次”python 排班表系列-CSDN博客文章浏览阅读953次点赞18次收藏9次。【办公类-16-07-04】合并版“2023下学期 中班户外游戏有场地和无场地版一周一次”python 排班表系列https://blog.csdn.net/reasonsummer/article/details/136196822
思路
循环读取《02贴墙版-中班户外游戏含场地有标题.xlsx》的班级标签把每个标签里面的A列和C列内容读取出来写入“数据.xlsx“” 我不想去搜索班主任的姓名了就用A和B替代班主任使用表格时使用查找替换功能将A B分别变成2位班主任的名字 代码展示:
# -*- coding:utf-8 -*- 1 自主游戏观察记录模板-中2到中7
作者阿夏
时间2024年2月23日# 一、导入相关模块设定excel所在文件夹和生成word保存的文件夹
from docxtpl import DocxTemplate
import pandas as pd
import os
import time# # print(----------第0步读取班级标签读取指定内容写入EXCEL----)from openpyxl import load_workbooktitle[]
for x in range(2,8):title .append(中{}班户外游戏.format(x))for y in range(len(title)):# 打开1.xlsx文件wb1 load_workbook(rC:\Users\jg2yXRZ\OneDrive\桌面\周计划\01自主游戏观察记录模板制作\02贴墙版-中班户外游戏含场地有标题.xlsx)# 选择Sheet2标签# sheet1 wb1[中2班户外游戏]sheet1 wb1[{}.format(title[y])]# 创建一个新的工作簿2.xlsxwb2 load_workbook(rC:\Users\jg2yXRZ\OneDrive\桌面\周计划\01自主游戏观察记录模板制作\数据.xlsx)# 选择默认的活动工作表sheet2 wb2.active# 读取第A1:A13的内容并保存到B1:B13for i in range(3, 22):# 项目value sheet1.cell(rowi, column3).value # C列3 第三行sheet2.cell(rowi-1, column6).value value # 第二张的F列2行# 班级value sheet1.cell(rowi, column1).value # A列3 中2班v1value[:1] # 只要“中v2value[1:2] # 只要“2sheet2.cell(rowi-1, column2).value v1 sheet2.cell(rowi-1, column3).value v2 # 保存修改后的2.xlsx文件wb2.save(rC:\Users\jg2yXRZ\OneDrive\桌面\周计划\01自主游戏观察记录模板制作\数据.xlsx)print(----------第1步制作路径----)zpathos.getcwd()\\zpathrC:\Users\jg2yXRZ\OneDrive\桌面\周计划\01自主游戏观察记录模板制作\\file_pathzpath零时\\# print(file_path)# r\零时Wordprint(----------第2步遍历excel逐个生成wordform.docx是前面的模板------------)try:os.mkdir(file_path)except:pass# tpl DocxTemplate(zpath自主游戏观察记录模板.docx)IDcard pd.read_excel(zpath数据.xlsx)weekIDcard[week] grade IDcard[grade]numberIDcard[number]# str.rstrip()T1IDcard[T1] # str.rstrip()用于去掉换行符T2IDcard[T2] # str.rstrip()用于去掉换行符contentIDcard[content] # str.rstrip()用于去掉换行符# math autho[math]# eng autho[eng]# 遍历excel行逐个生成num IDcard.shape[0]for i in range(num):context {week: week[i],grade: grade[i],number: number[i], T1: T1[i],T2: T2[i],content: content[i], }tpl DocxTemplate(zpath自主游戏观察记录模板.docx)tpl.render(context)# tpl.save(file_pathr\{} 的身份证.docx.format(name[i]))#tpl.save(file_path合并{}.docx.format(%02d%week[i]))print(----------第3步doc 文档合并------------) # 合并所有Wordimport win32com.client as win32import osword win32.gencache.EnsureDispatch(Word.Application)#启动word对象应用word.Visible Falsefiles []for filename in os.listdir(file_path):filename os.path.join(file_path,filename)files.append(filename)#新建合并后的文档使用模板进行12个文件夹的合并把12个文件夹的内容贴到已有的模板包含0.7边、四分栏output word.Documents.Add()for file in files:output.Application.Selection.InsertFile(file)#拼接文档#获取合并后文档的内容doc output.Range(output.Content.Start, output.Content.End)# 合并wordlspathallzpath{}{}班自主游戏观察记录202402-202406.docx.format(grade[i],number[i])output.SaveAs(lspathall) #保存output.Close()print(----------第4步删除临时文件夹------------) import shutilshutil.rmtree(file_path) #递归删除文件夹即删除非空文件夹终端循环了6次中2-中7班
素材及结果展示 举例中2班
举例中5班 感悟
读取EXCEL标签批量制作{{}}的xlsx数据和word模板
可以快速生成班本化的各类资料模板让文本格式统一减少因为格式、内容被迫返工的问题。