• 【教学类-35-03】学号+姓名+班级(小3班)学号字帖(A4竖版2份)


     图片展示:

    背景需求:

    本周排到小3班,还没有来得及设计小班主题活动书的内容,于是就把小2班的学号字帖微调一下,做一份竖版2份的学号字帖。

    让幼儿熟悉自己的学号,让我也熟悉幼儿的名字和学号

    材料准备:

    描字写(学号、名字)非常实用,所以我已经写了很多很多个WORD模板了。

    为了区分,这一次又建了一个文件夹 20230928小3班学号描字帖

    包含素材:

    WORD模板样式

    EXCEL名单样式

    代码展示:

    1.py位置

    2.代码段

    1. '''
    2. 作者:阿夏
    3. 时间:2023年9月28日
    4. A4竖版两人,每人三行
    5. '''
    6. import xlwt
    7. import xlrd
    8. import os
    9. import random
    10. from win32com.client import constants,gencache
    11. from win32com.client.gencache import EnsureDispatch
    12. from win32com.client import constants # 导入枚举常数模块
    13. import os,time
    14. import docx
    15. from docx import Document
    16. from docx.shared import Pt
    17. from docx.shared import RGBColor
    18. from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
    19. from docx.oxml.ns import qn
    20. # hs=int(input('一行2个,需要几行(1行,还有6行是表格)\n'))
    21. print('----------第1步:新建一个临时文件夹------------')
    22. # 新建一个”装N份word和PDF“的文件夹
    23. os.mkdir(r'C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\零时Word')
    24. wb= xlrd.open_workbook(r"C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\20230928小3班学号描字帖\学生名单.xlsx") #打开文件并返回一个工作蒲对象。open_workbook可以点进去看看函数里面的参数的含义之类的,很详细,英语不好的可以百度翻译,翻译出来的结果差不多。
    25. sheet=wb.sheet_by_index(0) #通过索引的方式获取到某一个sheet,现在是获取的第一个sheet页,也可以通过sheet的名称进行获取,sheet_by_name('sheet名称')
    26. col1=sheet.col_values(0)# 学号
    27. col3=sheet.col_values(1)# 班级
    28. col2=sheet.col_values(2)# 名字
    29. num=len(col1)-1 # 第一列去掉第一行
    30. # for z in range(0,num): #多少份
    31. # list=[]
    32. # nb=[]
    33. # nb2=[]
    34. numberall=[]
    35. # 生成 基本组:“学号+名字“
    36. for num in range(1,len(col1)):
    37. name00=col2[num] #吧学号和名字拼在一起, 张三
    38. numberall.append(name00)
    39. for x1 in range(3):
    40. number=int(col1[num])
    41. numberall.append(number)
    42. name01=col3[num] #吧学号和名字拼在一起, 张三
    43. numberall.append(name01)
    44. # print(name00)
    45. for x2 in range(11):
    46. number=int(col1[num]) #吧学号和名字拼在一起, 张三
    47. numberall.append(number)
    48. print(numberall)
    49. # 一个数组【】
    50. # 切开25人 一人16个数字
    51. list1=[]
    52. for fk in range(int(len(numberall)/16)): # 一共16格子
    53. list1.append(numberall[fk*16:fk*16+16])
    54. # print(list1)
    55. # print(len(list1))
    56. list=[]
    57. for r in range(int(len(list1)/2)):
    58. list.append(list1[r*2:r*2+2])
    59. print(list)
    60. print(len(list))
    61. # 25个数组【】
    62. #单元格坐标
    63. bg=[]
    64. for x in range(4):
    65. for y in range(4):
    66. z2='{}{}'.format(x,y)
    67. bg.append(z2)
    68. # ['00', '01', '02', '03', '04', '10', '11', '12', '13', '16', '20', '21', '22', '23', '24']
    69. for n in range(int(num/2)):
    70. doc = docx.Document(r"C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\20230928小3班学号描字帖\小3班描字帖.docx")
    71. for b in range(2):
    72. table = doc.tables[b]
    73. # print(p)
    74. for t in range(len(bg)): # 0-16
    75. # print(list[t])
    76. pp=int(bg[t][0]) # 提取表格bg里面每个元素的第0个数字==单元格X坐标 t=索引数字
    77. qq=int(bg[t][1])
    78. k=list[n][b][t]
    79. # f=font[t]
    80. print(pp,qq,k)
    81. run=table.cell(pp,qq).paragraphs[0].add_run(str(k)) # 在单元格0,0(第1行第1列)输入第0个名字
    82. run.font.name = '楷体' #输入时不字体
    83. run.font.size = Pt(65) #输入字体大小80或68号
    84. run.bold=True
    85. run.font.color.rgb = RGBColor(200,200,200) #设置颜色10%黑色=深灰
    86. r = run._element
    87. r.rPr.rFonts.set(qn('w:eastAsia'), '楷体' )#将输入语句中的中文部分字体变为华文行楷
    88. table.cell(pp,qq).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中
    89. doc.save(r'C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\零时Word\{}.docx'.format('%02d'%n))#保存为XX学号的零时word
    90. from docx2pdf import convert
    91. # docx 文件另存为PDF文件
    92. inputFile = r"C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\零时Word\{}.docx".format('%02d'%n)# 要转换的文件:已存在
    93. outputFile = r"C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\零时Word\{}.pdf".format('%02d'%n) # 要生成的文件:不存在
    94. # 先创建 不存在的 文件
    95. f1 = open(outputFile,'w')
    96. f1.close()
    97. # 再转换往PDF中写入内容
    98. convert(inputFile, outputFile)
    99. from docx2pdf import convert
    100. print('----------第4步:把都有PDF合并为一个打印用PDF------------')
    101. import os
    102. from PyPDF2 import PdfFileMerger
    103. target_path = 'C:/Users/jg2yXRZ/OneDrive/桌面/描字帖/零时Word'
    104. pdf_lst = [f for f in os.listdir(target_path) if f.endswith('.pdf')]
    105. pdf_lst = [os.path.join(target_path, filename) for filename in pdf_lst]
    106. pdf_lst.sort()
    107. file_merger = PdfFileMerger()
    108. for pdf in pdf_lst:
    109. print(pdf)
    110. file_merger.append(pdf)
    111. # file_merger.write("C:/Users/jg2yXRZ/OneDrive/桌面/描字帖/(打印合集)大班A整页描字帖2乘5加表格-4名字-({}人).pdf".format(num))
    112. file_merger.write("C:/Users/jg2yXRZ/OneDrive/桌面/描字帖/(打印合集)小3班描字帖练习册({}份).pdf".format(num))
    113. file_merger.close()
    114. # doc.Close()
    115. # # print('----------第5步:删除临时文件夹------------')
    116. import shutil
    117. shutil.rmtree('C:/Users/jg2yXRZ/OneDrive/桌面/描字帖/零时Word') #递归删除文件夹,即:删除非空文件夹`

    终端运行

    不用输入参数,直接运行

    成果位置

    列表的结构=1个名字+3个学号+1个班级+11个学号


     

    学具裁切

    幼儿操作:

    时间:2023年09月28日 下午14:30-14:45

    班级:小3

    人数:17人

    总结分析:

    1、幼儿第一次接触学号纸学具,要求就是"把灰色的线变成黑色的”

    2、半数幼儿用正确书写手势,书写线条流畅。

    3、半数幼儿反复求助:“我不会做”,老师捏着她们的手示范笔顺。几次后,幼儿还是表示“不会做”。于是我鼓励他们在纸张反面随意涂鸦。结果记号笔与纸张接触时间长了,纸张晕染,出现破洞。幼儿很扫兴,不愿意在画了。

    4、“可以带回去吗?”“可以哦,给爸爸妈妈看看,教你们画画自己的学号”。听说可以带回去,孩子们都很开心。

    感悟:

    在描线要求下,小3班的孩子呈现3种状态。

    1、经常描字的孩子书写线条流畅

    2、部分孩子勉强把灰字描了一下(扭动线条)、

    3、完全不知道怎么下笔的孩子(发呆、求助、涂鸦)

    本次看到一位男孩直接描画了线框轮廓。把细线变成粗线。

    END

                            

  • 相关阅读:
    Go编程项目实战教程
    MATLAB算法实战应用案例精讲-【图像处理】目标检测(补充篇)(附实战案例及代码实现)
    MySQL INTERVAL 关键字指南
    bable 【实用教程】
    Re44:数据集 GSM8K 和 论文 Training Verifiers to Solve Math Word Problems
    GIS入门,xyz地图瓦片是什么,xyz数据格式详解,如何发布离线XYZ瓦片到nginx或者tomcat中
    P3799 妖梦拼木棒——枚举+组合数学
    Flutter Inspector无法显示完整的Widget树
    jQuery学习:内置动画 淡出/淡入 展开/收缩 显示/隐藏
    全国职业院校技能大赛 - ruijie网络模块 - 样卷一解析
  • 原文地址:https://blog.csdn.net/reasonsummer/article/details/133419304