【教学类-23-02】20240929《不会写学号的中班幼儿的学号描字贴》(中2班描字)

背景需求:

今天给孩子们做中班操作材料包《练眼力》,希望他们在操作纸左上角写学号,结果有不少孩子嚷:“我不会写学号!”

“不会写的孩子举手,老师给你们做个字帖”

结果有不少孩子都举手了,我把学号抄下来。

有12人,如果算上没有来园的2人,14/29占总数48.27%,毕竟是中班上学期,不会写学号也正常。

但是为了区分物权,哪怕是“画数字”也希望他们在作业上留下记号。

我用了以前写的代码,复制一份

【教学类-23-01】20221217《不会写学号的中班幼儿的学号描字贴》(中班描字)_幼儿学号用word制作-CSDN博客文章浏览阅读659次。【教学类-23-01】20221217《不会写学号的中班幼儿的学号描字贴》(中班描字)_幼儿学号用word制作https://blog.csdn.net/reasonsummer/article/details/128357121

只修改了字体“杨任东竹石体—Regular”,

因为字体变化,复制word模板,并修改模版里的段落间距、调整了字体的字号。确保它撑满格子。

代码展示


'''
作者:阿夏
时间:2024年9月28日
名称:中2班不会写名字的孩子练习学号12人
'''

import xlwt
import xlrd
import os
import random
from win32com.client import constants,gencache
from win32com.client.gencache import EnsureDispatch
from win32com.client import constants # 导入枚举常数模块

import os,time
import docx
from docx import Document
from docx.shared import Pt 
from docx.shared import RGBColor
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.oxml.ns import qn

from docxtpl import DocxTemplate
import pandas as pd
from docx2pdf import convert
from docx.shared import RGBColor

path=r"C:\Users\jg2yXRZ\OneDrive\桌面\描字帖"


wb= xlrd.open_workbook(path+r"\学生名单.xlsx") #打开文件并返回一个工作蒲对象。open_workbook可以点进去看看函数里面的参数的含义之类的,很详细,英语不好的可以百度翻译,翻译出来的结果差不多。
sheet=wb.sheet_by_index(0)   #通过索引的方式获取到某一个sheet,现在是获取的第一个sheet页,也可以通过sheet的名称进行获取,sheet_by_name('sheet名称')
col1=sheet.col_values(0)# 学号
col2=sheet.col_values(1)# 名字
num=len(col1)-1  # 第一列去掉第一行

# 幼儿学号
num1=[8,9,10,12,15,20,21,23,26,27,28,29]

l=[]
# 生成 基本组:“学号“
for i in range(1,len(col1)):
    # for d in range(8):
    name='{}'.format (int(col1[i]) )    #学号
    l.append(name)    
print(l)# 32个名字

# 单元格坐标 
# zb=['35','46','55','68','44','79']
zb=['34','45','54','67','43','78']

# 6个表格所有的table[bg] 
bg=[]

for i in range(0,len(zb)):
    # print(i)
    for x in range(0,int(zb[i][1])):        # 行
        for y in range(0,int(zb[i][0])):            #列
            bg.append('{}{}'.format(x,y)) 
# print(len(bg)) 
# # 162
# print(bg) 
# ['00', '01', '02', '10', '11', '12', '20', '21', '22', '30', '31', '32', '00', '01', '02', '03', '10', '11', '12', '13', '20', '21', '22', '23', '30', '31', '32', '33', '40', '41', '42', '43', '00', '01', '02', '03', '04', '10', '11', '12', '13', '14', '20', '21', '22', '23', '24', '30', '31', '32', '33', '34', '00', '01', '02', '03', '04', '05', '10', '11', '12', '13', '14', '15', '20', '21', '22', '23', '24', '25', '30', '31', '32', '33', '34', '35', '40', '41', '42', '43', '44', '45', '50', '51', '52', '53', '54', '55', '60', '61', '62', '63', '64', '65', '00', '01', '02', '03', '10', '11', '12', '13', '20', '21', '22', '23', '00', '01', '02', '03', '04', '05', '06', '10', '11', '12', '13', '14', '15', '16', '20', '21', '22', '23', '24', '25', '26', '30', '31', '32', '33', '34', '35', '36', '40', '41', '42', '43', '44', '45', '46', '50', '51', '52', '53', '54', '55', '56', '60', '61', '62', '63', '64', '65', '66', '70', '71', '72', '73', '74', '75', '76']

# 把zb做成索引数量
# 第一次,X*Y=Z
# zb=['34','45','54','67','43','78']
zb1=[]
zb1.append(0)
for t in range(len(zb)):
    b=int(zb[t][0])*int(zb[t][1])
    zb1.append(b)
print(zb1)
# zb1=[0, 12, 20, 20, 42, 12, 56]

# 第二次:反复相加
zb2=[]
# zb1= [0, 12, 20, 20, 42, 12, 56]
for m in range(1,len(zb1)+1):
    zb2.append(sum(zb1[:m]))
print(zb2)
# zb2=[0, 12, 32, 52, 94, 106, 162]

#  第三次,提取两个索引数字
bg_all=[]

xx = zb2[0:len(zb2)-1]# [0, 12, 32, 52, 94, 106] 
yy = zb2[1:len(zb2)] # [12, 32, 52, 94, 106, 162]
zz= dict(zip(xx,yy))
# print(bg_all)
# zz={0: 12, 12: 32, 32: 52, 52: 94, 94: 106, 106: 162}

# 6套坐标索引分割开来
for k,v in zz.items():    # 提取键key(第一个)值value(第二个)
    print(k,v)
    g=bg[int(k):int(v)]
    # print(g)
    bg_all.append(g)
print(bg_all)
# [['00', '01', '02', '10', '11', '12', '20', '21', '22', '30', '31', '32'], ['00', '01', '02', '03', '10', '11', '12', '13', '20', '21', '22', '23', '30', '31', '32', '33', '40', '41', '42', '43'], ['00', '01', '02', '03', '04', '10', '11', '12', '13', '14', '20', '21', '22', '23', '24', '30', '31', '32', '33', '34'], ['00', '01', '02', '03', '04', '05', '10', '11', '12', '13', '14', '15', '20', '21', '22', '23', '24', '25', '30', '31', '32', '33', '34', '35', '40', '41', '42', '43', '44', '45', '50', '51', '52', '53', '54', '55', '60', '61', '62', '63', '64', '65'], ['00', '01', '02', '03', '10', '11', '12', '13', '20', '21', '22', '23'], ['00', '01', '02', '03', '04', '05', '06', '10', '11', '12', '13', '14', '15', '16', '20', '21', '22', '23', 
# '24', '25', '26', '30', '31', '32', '33', '34', '35', '36', '40', '41', '42', '43', '44', '45', '46', '50', '51', '52', '53', '54', '55', '56', '60', '61', '62', '63', '64', '65', '66', '70', '71', '72', '73', '74', '75', '76']]

size=[118,84,66,53,85,44]

# # # font=['楷体','楷体','楷体','隶书','华文新魏','华文彩云','方正姚体','幼圆']# 8种字体

print('----------第1步:新建一个临时文件夹------------')
# 新建一个”装N份word和PDF“的文件夹
tencent=path+r'\零时Word'
os.makedirs(tencent,exist_ok=True)
# doc= docx.Document(r"C:\Users\jg2yXRZ\OneDrive\桌面\描字贴\打印合集描字贴.docx")# 新建Word

for n in range(0,num):    # 一共多少份
    doc = docx.Document(path+r"\中2班不会写学号的孩子的描字帖练习册.docx")
    for t in range(0,len(bg_all)):
        table = doc.tables[t]   
        for p in range(0,int(len(bg_all[t]))):
                   # 一共有9个表格

            
            pp=int(bg_all[t][p][0])     # 提取表格bg里面每个元素的第0个数字==单元格X坐标  t=索引数字
            qq=int(bg_all[t][p][1]) 
            # f=font[t]        # 字体格式
            k=l[n]               # 从4名字里提取名字\
            ss=size[t]
            print(pp,qq,k)

            run=table.cell(pp,qq).paragraphs[0].add_run(k)    # 在单元格0,0(第1行第1列)输入第0个名字
            run.font.name = '杨任东竹石体-Regular'  #输入时不同字体
            run.font.size = Pt(ss)  #输入字体大小80或68号
            run.font.color.rgb = RGBColor(200,200,200) #设置颜色10%黑色=深灰
        
            r = run._element
            r.rPr.rFonts.set(qn('w:eastAsia'), '杨任东竹石体-Regular' )#将输入语句中的中文部分字体变为华文行楷
            table.cell(pp,qq).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中

    doc.save(tencent+fr'\{n:02}.docx')#保存为XX学号的零时word

    from docx2pdf import convert
    # docx 文件另存为PDF文件
    inputFile = tencent+fr'\{n:02}.docx'# 要转换的文件:已存在
    outputFile = tencent+fr'\{n:02}.pdf' # 要生成的文件:不存在
    # 先创建 不存在的 文件
    f1 = open(outputFile,'w')
    f1.close()
    # 再转换往PDF中写入内容
    convert(inputFile, outputFile)

    from docx2pdf import convert

print('----------第4步:把都有PDF合并为一个打印用PDF------------')

import os
from PyPDF2 import PdfFileMerger
target_path = tencent
pdf_lst = [f for f in os.listdir(target_path) if f.endswith('.pdf')]
pdf_lst = [os.path.join(target_path, filename) for filename in pdf_lst]
pdf_lst.sort()
file_merger = PdfFileMerger()
for pdf in pdf_lst:
    print(pdf)
    file_merger.append(pdf)
# file_merger.write("C:/Users/jg2yXRZ/OneDrive/桌面/描字帖/(打印合集)大班A整页描字帖2乘5加表格-4名字-({}人).pdf".format(num))
file_merger.write(path+fr"\20240928中2班不会写学号的孩子的描字帖练习册({num}份).pdf")
file_merger.close()
# doc.Close()

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

生成结果

打印

切开

左侧装订

本次记号笔和彩色水笔会渗透到下一页,所以垫了一张铅画纸

该幼儿一直有镜像视觉(把21写成12)在自主书写,发现幼儿写的数字都是左右镜像,而且出现旋转,每次写的数字的角度都不一样。

左侧孩子家里没有练过,无法正确捏笔

我的搭班老师指导幼儿正确捏笔

不会写,哭了,同意停止。

我画了一个起始点,幼儿能够照着样子画了8,书写姿势正确。但线条虚浮,手指肌群灵活性、力度不足但是后面空白写数字8,还是两个分开的0,

幼儿能够正确姿势描红,自主书写时,可以写出2,无法写3

写的很好,也能自己写20(昨天举手纯属跟风)

利用早晨来园半小时写的,还有部分孩子没有来。

后续再练习看看,希望孩子们都能“画出学号”,便于确认物权

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

阿夏reasonsummer

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

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

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

打赏作者

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

抵扣说明:

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

余额充值