【教学类-15-01】20221115《学号(姓名)描字帖-A4横版-竖切》(中班)

news2025/7/21 4:34:04

  效果展示

 浅蓝色打印纸(灰色字体)

 背景需求:

        

       在中3班的Python学具实验中,发现至少有3位幼儿明确表示自己不会写学号,还有3位幼儿书写的学号是镜像字(两个数字位置互换、两个数字都左右镜像、2和5上下镜像等)。

      前期我有一套描字帖,是从TXT里导出幼儿的学号名字,批量生成A4的幼儿描字帖。在掌握列表取值的方法后,我希望这一次制作描字帖能从Excel导入幼儿学号和名字。

        考虑到幼儿的书写速度,整张A4的书写量比较适合大班,中班就用半张A4的数字量。这种情况下,一页需要用到两个学号和两个名字。也就是所有30位幼儿的描字贴都都在一个word横板文档中(30人可以分成15张A4)

        不仅适合幼儿操作(6人桌操作空间优先,作业纸不能太大),还能节约纸张(最近都在用浅蓝色的空白打印纸,不是废纸,用起来有点浪费)

文件设置:

(一)文件位置

  (二)Word模板

页眉设置 

分栏2栏(一页两个人的信息)

第一个光标的段间距

其他都不用设置 

输入的名字、学号的字体、间距、颜色等在py代码里设置。

(三)EXCEL

 

代码呈现

py代码可以存放再任意位置,因为所有文件路径都是已经全部写在代码里。

'''

作者:阿夏
时间:2022年11月14日
名称:大班学具:中班学号描字帖,两人一份,写在一个word里)

'''

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

# banji=input('请输入班级(大1)\n')

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


doc = docx.Document(r"C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\学生名单.docx")

wb= xlrd.open_workbook(r"C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\学生名单.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  # 第一列去掉第一行

ls=[]
nb=[]
nb2=[]
# 生成 基本组:“学号+名字“
for i in range(1,len(col1)):
    name='{}{}'.format ('%02d'%int(col1[i]),col2[i])     #吧学号和名字拼在一起, 01张三  
    name2='{} {} '.format (name,name)
    ls.append(name2)    # 生成第一行信息['01张三   01张三 ],正好摆一行  
print(ls)
# 提取基本组:“学号”
for i in range(1,len(col1)):
    number=str('%02d'%col1[i])    # ['01', '02', '03', '04', '05', ……]
    nb.append(number) 
print(nb)

# 把学号批量6个,组成6个一组,正好摆一行
for xx in range(0,len(nb)):
    # c=nb[xx]    
    d='{} {} {} {} {} {}'.format(nb[xx],nb[xx],nb[xx],nb[xx],nb[xx],nb[xx])
    # ['01 01 01 01 01 01', '02 02 02 02 02 02', '03 03 03 03 03 03', '04 04 04 04 04 04', ……]
    nb2.append(d)  
print(nb2) 

# 把['01张三   01张三 ]复制2次,正好在第1、2行
# 把['01 01 01 01 01 01', 复制5次,正好摆在3,4,5,6,7行上.
lists=[]
for k1 in range(0,len(ls)):
    for j in range(2):        # 1行2个学号名字,一共2行
        lists.append(ls[k1])
    for l in range(0,5):   # 1行6个学号名字,一共4行
        lists.append(nb2[k1])      

print(lists) 

       
for i in range(0,len(lists)):
    doc.add_paragraph(lists[i])
    # 字体这一段一定要再写一次
    for paragraph in doc.paragraphs:
        for run in paragraph.runs:             
            run.font.size = Pt(35)                # 数字题目字体大小
            run.font.bold = False                    #数字题目字体是否加粗 不加粗,5*8再加粗比较满,压抑了
            run.font.name = 'Arial'           # 控制是英文时的字体
            run.element.rPr.rFonts.set(qn('w:eastAsia'), '微软雅黑')  # 控制数字是中文时的字体
            # paragraph.alignment = WD_PARAGRAPH_ALIGNMENT.LEFT # 设置数字页眉居中对齐
            paragraph.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER # 设置数字页眉居中对齐
            run.font.color.rgb = RGBColor(200,200,200) #设置颜色浅灰
            # paragraph.paragraph_format.line_spacing=1.5 #数字中文字的段行距
            paragraph.paragraph_format.line_spacing = Pt(60) #数字段间距

    # 设置主要页边距 5
    from docx.shared import Cm # 导入cm模块
    doc.sections[0].top_margin = Cm(1)# sections[1]是第二节=第二页 上边距
    doc.sections[0].bottom_margin = Cm(1)# sections[1]是第二节=第二页 下边距
    doc.sections[0].left_margin = Cm(1) # sections[1]是第二节=第二页 左边距
    doc.sections[0].right_margin = Cm(1)# sections[1]是第二节=第二页 右边距
    # 设置其他页边距 
    doc.sections[0].gutter=Cm(0)# sections[1]是第二节=第二页 装订线 默认为0 左
    doc.sections[0].header_distance=Cm(0.8)# sections[1]是第二节=第二页 页眉边距
    doc.sections[0].footer_distance=Cm(1.3)# sections[1]是第二节=第二页 页脚边距
    # 装订线还有一个位置属性,暂时未发现如何设置,默认为左,如果需求设置成右,可以建个模板docx文档导入。

    # 设置纸张方向和大小  LANDSCAPE=横  PORTRAIT纵  默认信纸 纵
    from docx.shared import Cm # 导入CM # 
    from docx.enum.section import WD_ORIENTATION  # 导入纸张方向
    doc.sections[0].page_height = Cm(21)  # 设置A4纸的高度
    doc.sections[0].page_width = Cm(29.7)  # 设置A4纸的宽
    doc.sections[0].orientation = WD_ORIENTATION.LANDSCAPE # 设置纸张方向为横向 L 

    # 设置分栏 如果不要,就把数字该为为1
    from docx.oxml.ns import qn
    doc.sections[0]._sectPr.xpath('./w:cols')[0].set(qn('w:num'), '2') #把第二节页设置为2栏


doc.save(r"C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\中三班A4一半描字帖一行计算{}人.docx".format(num))

from docx2pdf import convert

# docx 文件另存为PDF文件
inputFile = r"C:/Users/jg2yXRZ/OneDrive/桌面/描字帖/中三班A4一半描字帖一行计算{}人.docx".format(num)# 要转换的文件:已存在
outputFile = r"C:/Users/jg2yXRZ/OneDrive/桌面/描字帖/中三班A4一半描字帖一行计算{}人.pdf".format(num) # 要生成的文件:不存在
# 先创建 不存在的 文件
f1 = open(outputFile, 'w')
f1.close()
# 再转换往PDF中写入内容
convert(inputFile, outputFile)

运行输入

  只要运行,不需要输入任何信息

最后生成一个“中三班A4一半描字帖一行计算6人.pdf”

重点解析:

如何从excle里抽取列数据 把“学号姓名”“学号”的基本列表做好,并全部加入到lists列表中。

学号名字描字贴的字体(颜色为200,200,200中灰色)

教学过程:

中3班    2022年11月25日  6人

部分幼儿选择练习描学号,其他会写学号的中3班幼儿不用练习。

4人位男孩和1位女孩主动搜索自己的描字帖(28号14号17号16号5号)24号男孩不会画学号也没有选择任何教具,教具单独交流鼓励他进行描画练习。 6位描字帖的孩子中,可以看到一个特点:

无描字经验:

第1位幼儿24号,前期没有描学号的任何经验,数字跳着写。每个数字的绘画顺序是从右向左(先4后2),先下后上(4:先画竖线,且从下向上画竖线,从右向左画横斜线,2,从下向上画),由于不知道如何运笔,幼儿画了几个数字后,就不愿意反复练习。

但是他本人强烈要求直接把”学号纸“带回家给爸爸妈妈看!(通常周五下午统一带回一周所有的作业,我也希望扫描后再发给幼儿),为了激发他的学习兴趣,并引导家长配合在家指导”24“的数字书写,我同意他当天把学号描字帖拿回家。

 

有描字经验——用铅笔或记号笔描完所有的数字

第2-6位幼儿,书写顺序基本都是从上到下,从左边到右边。显然已经有描字的经验。1位幼儿(26)直接在姓名位置写上自己的名字。1位幼儿I参照打印的名字,画了自己名字中的部分字和部首。三位幼儿用铅笔或记号笔描画了字帖里的四个名字。

  

 (为了信息保密,页眉、第1、2行的姓名都打码处理,实际上部分幼儿写了名字和学号)

感悟:

1、第一次尝试从EXCEL里面导入列的信息。

以前都是从TXT,或者直接在py代码里写一个带信息的列表(这种情况,信息少可以,如12个图案符号)。今天终于能够从EXCEL里调用信息,可以对大量信息进行处理(如30人以上班级名单)

2、对不会写的孩子来说,45的字号有点小。

考虑对有需求的孩子制作一整套多款式的学号字帖(入5*5个学号、4*5个学号),让幼儿写大字

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/17146.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【树莓派不吃灰】命令篇⑤ ps -ef | grep xxx | grep -v grep | wc -l 命令

目录1. 简介2. grep -v grep 命令作用2.1 ps -ef | grep python32.2 grep -v grep❤️ 博客主页 单片机菜鸟哥,一个野生非专业硬件IOT爱好者 ❤️❤️ 本篇创建记录 2022-11-18 ❤️❤️ 本篇更新记录 2022-11-18 ❤️🎉 欢迎关注 🔎点赞 &am…

让 Serverless 更普惠,阿里云函数计算 FC 宣布全面降价,最大幅度达 37.5%

背景 11 月 5 日,2022 杭州 云栖大会上,阿里云宣布函数计算 FC 开启全面降价,vCPU 单价降幅 11% ,其他的各个独立计费项最高降幅达 37.5% 。 本次云栖大会上,阿里云智能总裁张建锋表示,以云为核心的新型…

动态分区算法(头歌实验)第1关:首次适应算法。第2关:最佳适应算法。

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 题目: 第1关:首次适应算法 任务描述 假设初始状态下可用的内存空间为55MB,并有如下的请求序列: 作业1申请15MB 作业2申请30M…

Yolov5+图像分割+百度AI接口——车牌实时检测识别系统

Hallo,各位小伙伴大家好呀!这两天一直在肝项目,都是关于计算机视觉方面的,所以这两天一直也没有更新(真的不是我懒)!在这个过程中我对Yolov5有了更深刻的理解,在原有的Yolov5框架上增…

14.4、SpringWebFlux-2

14.4、SpringWebFlux-2 14.4.3、SpringWebFlux执行流程和核心 API SpringWebFlux 基于 Reactor,默认容器是 Netty,Netty 是高性能的 NIO 框架,异步非阻塞(AIO,是 NIO 的升级)的框架 14.4.3.1、执行流程 …

jrtplib开源库系列之三:jrtplib发送接收数据流程

说明 前面2篇文章主要说明了如何安装jrtplib库,以及对example1进行了说明,这篇文章主要说下jrtplib库数据的收发流程。 数据收发流程 从例子1就可以很好的说明jrtplib的使用是非常简单的,主要分为以下几步 1. 设置会话参数(比如时间戳&am…

同花顺_代码解析_技术指标_C

本文通过对同花顺中现成代码进行解析,用以了解同花顺相关策略设计的思想 CBJX 成本均线 成本价均线不同于一般移动平均线系统,成本价均线系统首次将成交量引入均线系统,充分提高均线系统的可靠性。成本均线不容易造成虚假信号或骗线&#xf…

牛客网项目-开发注册功能

前言 本文是对牛客网项目的总结,本文主要讲解页面注册逻辑 当我们点击首页的注册按钮时,会跳转到注册页面,然后再祖册页面提交账号,密码邮箱后会跳转到首页或者直接登录页面进行登录,这个操作可以自己设定 【设计逻辑…

SAP ABAP BAPI_SALESORDER_CREATEFROMDAT2 成本中心 kostl

BAPI_SALESORDER_CREATEFROMDAT2提供参数无成本中心字段,所以需要用扩展字段实现。 BAPE_VBAK: BAPE_VBAKX VBAKKOZ VBAKKOZX 封装扩展结构: DATA: LS_EXTENSION TYPE BAPIPAREX, LT_EXTENSION TYPE TABLE OF BAPIPAREX. DATA: LS_B…

目标检测论文解读复现之十一:基于特征融合与注意力的遥感图像小目标检测

前言 此前出了目标改进算法专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读最新目标检测算法论文&#xff0c…

【MySQL】5.触发器

文章目录1. 触发器概述2. 触发器的相关语法3. 触发的NEW与OLD4. 总结1. 触发器概述 触发器,就是一种特殊的存储过程。触发器和存储过程一样是一个能够完成特定功能、存储在数据库服务器上的SQL片段,但是触发器无需调用,当对数据库表中的数据…

python批量读取nc气象数据并转为tif

python批量nc数据转tif 各类地理数据中,NC格式是很常见的,然而这种格式ArcGIS是无法打开的。一旦下载的话nc也是多时序的(多年、多月等等),让我们看看如何批量操作吧。 直接上代码: import numpy as np …

[附源码]Python计算机毕业设计本科生外出请假管理信息系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

数据结构和算法

1.数据结构 食谱和算法之间最大的区别就在于算法是严密的。食谱上经常会有描述得比较模糊的部分, 而算法的步骤都是用数学方式来描述的,所以十分明确。 算法和程序有些相似,区别在于程序是以计算机能够理解的编程语言编写而成的,…

构造函数详解

构造函数详解1.构造函数的概念与特性2.默认构造函数(1)概念(2)分类(3)工作原理3.初始化列表(1)定义(2)为什么使用初始化列表(3)必须使…

WebRTC系列<五>我与一位大佬的聊天记录

原本打算想用webrtc部署虚幻项目。后来在了解虚幻过程中,得知虚幻有像素流插件,导出项目里带有STUN和TURN服务,但是在webGL项目里比如three.js、babylon.js如果也能部署在服务器端,那就厉害了,也很有想象力空间。 基本…

表白墙网站练习【前端+后端+数据库】

表白墙网站练习【前端后端数据库】 开发该表白墙(简单网站)的基本步骤: 1.约定前后端交互接口 2.开发服务器代码 编写Servlet能够处理前端发来的请求编写数据库代码,来获取/存储关键数据 3.开发客户端代码 基于ajax能够构造请…

一体化Ethercat通信伺服电机在汇川H5U PLC上的应用案例介绍(上)

内容介绍了一体化低压伺服Ethercat通信的电机在汇川H5UPLC上的使用,本篇主要讲解环境的搭建以及使用AutoShop软件的在线调试功能,简单控制电机位置、速度模式运行; 一、系统构成 本系统主要构成是电脑,H5U-1614MTD-A8,…

家长杂志家长杂志社家长编辑部2022年第30期目录

卷首语 读懂童心,营造乐学趣学好场景 本刊编辑部; 1 本刊视线_关注《家长》投稿:cn7kantougao163.com 留守儿童学习动力不足的成因与激发策略 蔡斌林; 4-6 农村留守儿童加强心理健康教育的策略 张芸; 7-9 本刊视线_学校体育 中学体育线上线下教学融…

【Struts2框架】idea快速搭建struts2框架

文章目录什么是SSH框架?Struts2框架1、struts2的环境搭建1.1 创建web项目(maven),导入struts2核心jar包1.2 配置web.xml(过滤器),是struts2的入口,先进入1.3 创建核心配置文件struts…