【办公类-16-10-02】(一周5个场地相同)“2023下学期 6个中班 自主游戏观察记录(python 排班表系列)

背景需求:

已经制作了本学期的中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_workbook

title=[]
for x in range(2,8):
    title .append('中{}班户外游戏'.format(x))

for y in range(len(title)):
    # 打开1.xlsx文件
    wb1 = load_workbook(r'C:\Users\jg2yXRZ\OneDrive\桌面\周计划\01自主游戏观察记录模板制作\02贴墙版-中班户外游戏(含场地,有标题).xlsx')

    # 选择'Sheet2'标签
    # sheet1 = wb1['中2班户外游戏']
    sheet1 = wb1['{}'.format(title[y])]

    # 创建一个新的工作簿2.xlsx
    wb2 = load_workbook(r'C:\Users\jg2yXRZ\OneDrive\桌面\周计划\01自主游戏观察记录模板制作\数据.xlsx')

    # 选择默认的活动工作表
    sheet2 = wb2.active

    # 读取第A1:A13的内容,并保存到B1:B13
    for i in range(3, 22):
        # 项目
        value = sheet1.cell(row=i, column=3).value    # C列=3  第三行
        sheet2.cell(row=i-1, column=6).value = value     #  第二张的F列2行

        # 班级
        value = sheet1.cell(row=i, column=1).value    # A列=3 中2班
        v1=value[:1]     # 只要“中"
        v2=value[1:2]    # 只要“2"

        sheet2.cell(row=i-1, column=2).value = v1   
        sheet2.cell(row=i-1, column=3).value = v2   

    # 保存修改后的2.xlsx文件
    wb2.save(r'C:\Users\jg2yXRZ\OneDrive\桌面\周计划\01自主游戏观察记录模板制作\数据.xlsx')

    print('----------第1步:制作路径----')
    zpath=os.getcwd()+'\\'
    zpath=r'C:\Users\jg2yXRZ\OneDrive\桌面\周计划\01自主游戏观察记录模板制作'+'\\'

    file_path=zpath+'零时\\'
    # print(file_path)
    # r'\零时Word'

    print('----------第2步:遍历excel,逐个生成word(form.docx是前面的模板)------------')
    try:
        os.mkdir(file_path)
    except:
        pass

    # tpl = DocxTemplate(zpath+'自主游戏观察记录模板.docx')
    IDcard = pd.read_excel(zpath+'数据.xlsx')

    week=IDcard["week"] 
    grade = IDcard["grade"]
    number=IDcard["number"]
    # str.rstrip()

    T1=IDcard["T1"]  # str.rstrip()用于去掉换行符
    T2=IDcard["T2"]  # str.rstrip()用于去掉换行符
    content=IDcard["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_path+r"\{} 的身份证.docx".format(name[i]))
    #
        tpl.save(file_path+"合并{}.docx".format('%02d'%week[i]))


    print('----------第3步:doc 文档合并------------') 

    # 合并所有Word
    import win32com.client as win32
    import os
    word = win32.gencache.EnsureDispatch('Word.Application')
    #启动word对象应用
    word.Visible = False


    files = []
    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)

    # 合并word
    lspathall=zpath+'{}({})班自主游戏观察记录(202402-202406).docx'.format(grade[i],number[i])

    output.SaveAs(lspathall) #保存
    output.Close()

    print('----------第4步:删除临时文件夹------------')    
    import shutil
    shutil.rmtree(file_path) #递归删除文件夹,即:删除非空文件夹

终端循环了6次,中2-中7班

素材及结果展示

举例:中2班

举例:中5班

感悟:

读取EXCEL标签,批量制作{{}}的xlsx数据和word模板

可以快速生成班本化的各类资料模板,让文本格式统一,减少因为格式、内容被迫返工的问题。

  • 14
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿夏reasonsummer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值