样式展示:生成一份按8周排序的“大班活动室安排表”

1、人工排序的样式

2.Python生成的样式和内容

背景需求:

前一个《大班游戏活动室排班表》主要是针对班主任贴周计划用(按班级分类 各21周,),我想领导做资料时,用的还是word版(8周)的内容比较方便。所以试着用程序写出这种样式——按周次分割一组,每组有8各班级。

表格样式

结构分析

1、每周:斜线递进1位

      以第1周为例,8个班级的活动内容依次递进1位(大1班第1周 01建构 02沙水 03角色 ……,大2班第1周就从02沙水开始,03角色、04表演)

2、每班:按顺序延续

第1周的组:第1行(大1班)排序:01建构 02沙水 03角色  04表演 05角色

第2周的组:第1行(大1班)排序:06表演、07建构、08角色、01建构、02沙水

也就是表格 一个班级的使用活动室是按照顺序排列的

3、数量:只要8周(8个表格)

领导用的表格,只有8周,(8周1循环),所以只要8个表格

4、基本元素:

通过推算不重复信息,可以获得基本元素内容

01建构游戏、02沙水游戏、03角色游戏、04表演游戏、

05角色游戏、06表演游戏、07建构游戏、08角色游戏

所有的递进都是以这个为基础进行循环的。

第二部分:领导用的8周游戏室排班表

重点说明:

代码设计

from msvcrt import LK_LOCK
import sys
import random
import xlrd
import xlwt
from openpyxl import load_workbook
import time
import xlwings as xwtime.sleep(2)'''领导用8周word表'''# 领导要的8周表
print('---------第1步:大1版(每个表第一行)第1-8周的基本组------')# 本学期:大1,大2,大3,大4,大5,大7,大8,大9班,其中6班空缺,一共有8个大班
# gradenum=['1','2','3','4','5','7','8','9']L=[]
L2=[]
L3=[]
L4=[]
LL=[]
ll=[]
gradenum=['1','2','3','4','5','7','8','9']
# print(len(gradenum))# 8
# radenum的长度=7,0-7,一共循环8次# 排列顺序按照原始01,02 03……排列,不需要把08元素调到01元素前。
L3=['建构游戏','沙水游戏','角色游戏','表演游戏','角色游戏','表演游戏','建构游戏','角色游戏',]
# print(L3)# 基础循环21次,并改成L
for x in range(0,10):for y in L3:        # print(y)L.append(y)
# L3*10次 基本形体
# ['建构游戏','沙水游戏','角色游戏','表演游戏','角色游戏','表演游戏','建构游戏','角色游戏',
# '建构游戏','沙水游戏','角色游戏','表演游戏','角色游戏','表演游戏','建构游戏','角色游戏',
# '建构游戏','沙水游戏','角色游戏','表演游戏','角色游戏','表演游戏','建构游戏','角色游戏',
# '建构游戏','沙水游戏','角色游戏','表演游戏','角色游戏','表演游戏','建构游戏','角色游戏',
# '建构游戏','沙水游戏','角色游戏','表演游戏','角色游戏','表演游戏','建构游戏','角色游戏',
# '建构游戏','沙水游戏','角色游戏','表演游戏','角色游戏','表演游戏','建构游戏','角色游戏',
# ]        # 从L里面抽取8种基本形,越向后元素数量越少
for x in range(0,8):LL=L[x*5:]# LL.append(L[x*5:])L2.append(LL)
# print(L2)# 如大1班基本形:从'L3[0:]'开始
# 建构游戏','沙水游戏','角色游戏','表演游戏','角色游戏','表演游戏','建构游戏','角色游戏',
# '建构游戏','沙水游戏','角色游戏','表演游戏','角色游戏','表演游戏','建构游戏','角色游戏',
# '建构游戏','沙水游戏','角色游戏','表演游戏','角色游戏','表演游戏','建构游戏','角色游戏'……
# 如大2班基本形:从'L3[5:]'开始
# '表演游戏','建构游戏','角色游戏','建构游戏','沙水游戏','角色游戏','表演游戏','角色游戏',
# '表演游戏','建构游戏','角色游戏',# '建构游戏','沙水游戏','角色游戏','表演游戏','角色游戏',
# '表演游戏','建构游戏','角色游戏……
# 如大3班基本形:从'L3[10:]'开始
# '角色游戏','表演游戏','角色游戏',# '表演游戏','建构游戏','角色游戏',# '建构游戏','沙水游戏',
# '角色游戏','表演游戏','角色游戏',# '表演游戏','建构游戏','角色游戏……# 生成8个EXCEL表格
for num in range(0,len(L2)):       # num=0-8 b=L2[num]      # 提取L2[[],[]]中的单个[]# print(b)L4.clear()    # 清空列表,否则第2周会有16行(每个EXCEL只需要8行)print('第{}周'.format(num+1))      # 终端里分割各个周的信息 for i in range(0,1):#第1周(第X周)表格里的第1行# print(L[0:5]) # L4.append(b[0:5])   for i in range(1,8):  #第1周(第X周)里的2-7行()b=b[1:]  b.append(b) # print(L[0:5]) L4.append(b[0:5])# L3.append(L[int(num)*5:int(num)*5])# print(L4)# 第1周(第X周)表格里的8个班级信息到成EXCELprint('---------第4步:xls写入)------') workbook = xlwt.Workbook()# 新建xls工作簿sheet = workbook.add_sheet("Sheet")# 新建xls工作簿的工作表的名字是sheet # 第0列 写入“第1周、第二周第一周活动室安排title="第{}周 大班 活动室安排".format(num+1)   # 用遍历方法获得“第1周、第2周、第21周”字样,      sheet.write(0,0,title)          #每周都写入A1格   # 第0列 A列纵向 写入“大1班、大2班dates=[]for i in range(0,len(gradenum)):        # print(i)            n='大{}班'.format(gradenum[i])         # 用遍历方法获得“大1班、大2班dates.append(n) row=2    # 班级纵向写入第3行 A3( 0 1 2)for d in range(0, len(dates)):sheet.write(row, 0, dates[d])         # 这里enumerate不能用,因为只有一列,所以就用row += 1    # 第1行(A2) 横向写入 星期一  '星期二','星期三','星期四','星期五  #weeks = ['班级','周一','周二','周三','周四','周五']week = len(weeks) col=0    # 从第0列(A)1行(2)写入,A2-F2for d in range(0, len(weeks)):sheet.write(1,col,weeks[d])         # 1=行 (0,1)col+= 1# 第B2开始写入 活动室内容arrlan = len(L4)# L4列表元素的数量row = 2     # 第3行for i in range(arrlan):         # 遍历21组[]的总数for col,item in enumerate(L4[i],1):            # L2[i]=表格内的内容=item,索引数字=colsheet.write(row,col,item)  # row,col,item 行=1、列=索引数字、内容=表格内容 写入第一行第一列 2行1列=B3row += 1   print('---------第5步:xls保存N份工作簿(每份一页)------')             try:workbook.save(r"C:\Users\jg2yXRZ\OneDrive\桌面\word2pdf2png\第{}周大班游戏活动室安排(领导版8周).xls".format(num+1))    # 新建保存 只能xlsprint('计划生成成功')except e:print('失败...')print(e)print('--------信息合并到1张上有标题----------')
# https://blog.csdn.net/xuyd33/article/details/72629460?import xlrd
import xlwt
import os
from xlutils.copy import copy
import os.path
from xlwt import *# dir = input("输入文件路径\n");
dir = r'C:\Users\jg2yXRZ\OneDrive\桌面\word2pdf2png'
start_row=1end_row = 0
all_file = [];def min_s(a, b):if a == 0:return bif (a > b):return belse:return a# 遍历所有同学文件
for parent, folder, filename in os.walk(dir):for file, x in zip(filename, range(len(filename))):file = os.path.join(parent, filename[x])print(filename[x])all_file.append(file)
print("\n文件总数:", len(all_file))
if os.path.exists('{}\result.xls'.format(dir)):os.remove('{}\result.xls'.format(dir))
w = xlwt.Workbook()
row = 0;
ws = w.add_sheet('sheet1', cell_overwrite_ok=True)
style = XFStyle()
fnt = Font()
fnt.height = 240 # 小四
fnt.name = u'宋体'
style.font = fnt
align = Alignment()
align.horz = 2
style.alignment = alignfor single_file_path in all_file:data = xlrd.open_workbook(single_file_path)sheet = data.sheet_by_index(0)if sheet.nrows >= start_row:for i in range(start_row - 1, min_s(end_row, sheet.nrows)):list = sheet.row_values(i)for col in range(0, len(list)):ws.write(row, col, list[col], style)row = row + 1;else:print("非法填写的表格名称:" + single_file_path)# 合并A列-N列,第一个参数是位置,第二个参数是内容,第三个参数是自定义格式#设置行高,set_tow(行号,对应行高)w.save(r'C:\Users\jg2yXRZ\OneDrive\桌面\word2pdf2png\大班游戏活动室安排(领导版8周).xls')
os.system("pause")print('--------标题合并居中----------')'''表格处理
1、表格字体:宋体小四
2、表格段落:30绑
3、列宽2.5CM
4、手动合并表格
'''

运行后的效果:

EXCEL表格效果

把表格选中,复制到docx里面(需要手动调整格式,适合打印

这个代码生成的表格的用途:领导做教务计划的附件黏贴

感悟:

手动调整docx也有点麻烦,最好也能用程序代码解决。

所以领导用的活动8周合并版(按周次分类,有8周)还需要研究docx的单元格合并,列宽、文字、段落大小调整。(后续做DOCX学习时再添补程序),

【办公类-16-05-02】“2022上学期 大班游戏活动室排班表——领导版8周”(python 排班表系列)相关推荐

  1. 【办公类-16-05-01】“2022上学期 大班游戏活动室排班表——班主任版21周”(python 排班表系列)

    样式展示:1-8周的内容,一摸一样复制到9-16周.17-24周 背景需求: 8月底,保教主任花了不少时间调试"大班游戏活动室安排表.docx",并多次让我给他调整Word的表格框 ...

  2. 【办公类-16-02】“2022上学期 大班运动场地分配表1-跳过节日循环排序”(python 排班表系列)

    样例展示:跳过节日的运动场地循环排序表(8个班级8组内容) 背景需求: 复工复学后,周计划做起来!每周的运动场地安排照旧-- 存在问题(一): 8个大班,靠着人工排序,每周都要推算一次这个规则,推演麻 ...

  3. 【办公类-16-06】“2022下学期 总园活动室(沙水+建构)排班表”(python 排班表系列)

    背景需求: 最近保教主任一直在为总园的活动室安排而头疼不已,和组长们商议许久,依旧无法合理把活动室安排好.3月2日下午,听主任和游戏室成员聊了一个小时的排班,结论是除沙水和建构外,其余空余时间都是&q ...

  4. 模板有函数模板和类模板,这个在上学期的java课里面就学了,C++应该是一样的。

    模板有函数模板和类模板,这个在上学期的java课里面就学了,C++应该是一样的. .

  5. 【办公类-16-05-04】“2022下学期 大班运动场地分配表-跳过节日循环排序”(python 排班表系列)

    样例展示:跳过节日的运动场地循环排序表(8个班级8组内容 下学期一共20周) 背景需求: 上学期做过一次大班运动场地安排,跳过节日.2023.2下学期运动场地排班(跳过节日)又来了. 一.场地器械微调 ...

  6. 【办公类-16-06-02】“2022下学期 总园活动室(沙水+建构)排班表(两周一次沙水)”(python 排班表系列)

    作品展示: 背景需求: 上一篇批量制作了"7天轮回14班沙水+每周固定建构"的活动室内排班表. 一.时段冲突,调整单双周. 保教主任抽空检查后,提到:"一个班.上午.下午 ...

  7. 【办公类-16-06】“校历(月日版)”(python 排班表系列)

    效果展示:校历日期显示带月份 背景需求: 每学期初我们都会使用到网上的校历,便于进行周计划制作.各类安全记录本填写等. 存在问题: 1.全局看日历上,每行每列都是单独的数字("日" ...

  8. 小敏同学利用计算机设计,福建省晋江一中、华侨中学2015-2016学年七年级数学上学期期中质量检测试题(无答案) 华东师大版...

    福建省晋江一中.华侨中学2015-2016学年七年级数学上学期期中质量检测试 题 一.细心选一选,慧眼识金!(四个选项中只有一个答案是正确.每小题2分,共20分) 1.3的相反数是---------- ...

  9. 芜湖c语言市赛答案,安徽省芜湖市2019-2020学年高二上学期期末考试 数学(文) Word版含答案...

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如果有侵权请立即联系:55525090@qq.com,我 ...

最新文章

  1. 公司GitHub被封号,只因员工在伊朗开电脑,官方:将撤销被美制裁国家限制
  2. 有时间看下这个,分布式缓存,提高并发的
  3. c 语言冒泡排序,c 语言冒泡排序
  4. dateformat 返回类型_SpringBoot返回date日期格式化
  5. 数据结构实验之查找二:平衡二叉树
  6. varnish的了解与常用配置使用
  7. 步进电机为什么无法高速启动?
  8. PKU3259-Wormholes(SPFA判断负环,含题意)
  9. HBase EndPoint加载失败
  10. jquery鼠标悬停动态显示提示文字或者图片
  11. ColorPix最好用的屏幕取色器
  12. 泛微怎么自动保存服务器,【泛微OA】系统超时登出解决方案
  13. arm架构下spinlock原理 (代码解读)
  14. 3dmax su 简单_【建模技巧】如何用3DMAX制作简单的绣球模型
  15. 方向包围盒OBB(oriented bounding box)
  16. 解决Tensorflow error(CUBLAS_STATUS_EXECUTION_FAILED)报错问题
  17. 还原一个真实的银行待遇
  18. 【深入UCSC Genome Brower】写在前面
  19. 虚拟来电 - 伪装来电工具
  20. 编程学不进去?如何才能拯救你的编程能力?

热门文章

  1. 专业的出版设计软件 Affinity Publisher for Mac
  2. 明道云如何实现银行内部评级管理
  3. 内部RAID 0:OCZ将推廉价高速固态硬盘
  4. 第三届“先导杯”开赛,欢迎参与
  5. 使用 Spring 构建 REST 服务
  6. 觉晓科技——前端笔试(2022.4.6)
  7. springboot自定义静态资源代理WebMvcConfigurerAdapter详解和过期后的替代方案WebMvcConfigurer
  8. 《设计模式之禅》——代理模式
  9. 中方将敦促马方扩大并明确搜寻范围、加大搜寻力度
  10. 怎样把图片转换成jpg格式?如何完成批量图片格式转换?