(基礎列表采用讀取WORD表格單元格數據,非采用切片組合))
背景需求:做了中班的四類活動安排表,我順便給大班做一套【辦公類-90-01】】20250213中班周計劃四類活動的寫法(分散運動、戶外游戲、個別化(美工室圖書吧探索室))-CSDN博客文章瀏覽閱讀874次,點贊10次,收藏11次。【辦公類-90-01】】20250213中班周計劃四類活動的寫法(分散運動、戶外游戲、個別化(美工室圖書吧探索室))https://blog.csdn.net/reasonsummer/article/details/145626428?sharetype=blogdetailsharerId=145626428sharerefer=PCsharesource=reasonsummerspm=1011.2480.3001.8118編號代碼復制總園中班大班的規則是差不多的1,運動從一周五個項目變成了一個項目2、游戲從一周五個項目變成了一個項目。3、個別化—和中班不同,只要寫一個項目,而不是美工、圖書、探索一、分散運動和中班的運動設計思路一樣,只是5周循環,改成7周循環。但是它的場地不是按序遞增,而是1475326.但是它也是有規律的,第二行是從第一行的索引3開始提取可以循環3次21周,49*3=147,但是實際20周20*5=140。因此,我需要 在總表里遍歷,直接刪除B列單元格里面有“第21周”的一行內容。''' 目的:2024年2月大班總部分散運動場地,每星期只有一條(各班滾動排) 大班是7個班,一個基礎循環49天,循環3次21周,需要刪除最后7天的內容 (一周一次,就不用考慮節假日了) 作者:阿夏、星火訊飛 時間:2024年2月15日15:30 ''' import sys import random import xlrd import xlwt from openpyxl import load_workbook import time import os, shutil # 一共20周 w = 20 # 五周一循環 xz = 7 # 提取元素數量,140個 zc=w*xz # 循環次數,多一點 y = 3 print(y) print('---------第1步:把8個運動場地循環21次(105元素組成的列表)------') # 本學期:總園大班只有5個 gradenum = ['1','2', '3', '4', '5', '6','7'] path = r"C:\Users\jg2yXRZ\OneDrive\桌面\202502 大班3類活動批量" # 新建一個”裝N份word和PDF“的文件夾 sport = [] classroom = [] week = [] # 這里是8個運動場地,因為后面有遞進,所以把最后一個 ,放到01前面,這樣擺放后面才會正確) sportall = [ '場地1(主要材料:平衡車、三輪車、自行車、木橋等)', '場地4(主要材料:輪胎、跨欄、鑼鼓、接力棒等) ', '場地7(主要材料:輪胎、安全墊、麻繩等) ', '場地5(主要材料:竹梯、三腳架、長凳、輪胎、安全墊等) ', '場地3(主要材料:爬籠、樹屋、沙漏、書包、鈴鐺等) ', '場地2(主要材料:彈力棉球、吸盤球、飛鏢盤等) ', '場地6(主要材料:各類球、籮筐、百變迷宮架、馬甲等)', ] # sport=[1,2,3,4,5] # 規律是,第一組12345,第二組23451 第三組34512 第三組45123,第五組51234 # ss = sportall * 20 sp=[] # 添加第1組 sp= sportall.copy() print(sport) # 添加第2-6組 for i in range(xz-1): # 總共需要添加4次,因為已經有一個初始組 sportall =sportall[3:] +sportall[:3] print(f"第{i + 1}次提取的元素: {sportall}") for x in sportall: sp.append(x) print(len(sp)) # 49次 sport=[] # # 手動復制3次 for x in range(y): # 7周一循環,最少3次=21周 for yy in sp: sport.append(yy) # 提取前140個,正好20周,每周7個場次 print("運用場地:", sport) print("運動場地長度:", len(sport)) # 140 classroom=[] for x in range(y): # 4 for i in range(len(gradenum)): for oo in range(xz): classroom.append(f'大{gradenum[i]}班') print(classroom) print(len(classroom)) # 140 week=[] for x in range(y): # 4 for o in range(xz): # x=5 for l in range(x * xz + 1, x * xz + xz + 1): ww = f'第{l:02}周' week.append(ww) week= week print(week) print(len(week)) # 制作表格 import openpyxl from openpyxl import Workbook # 創建一個工作簿對象 wb = Workbook() ws = wb.active ws.title = "總表" # 在A1寫入“班級”,B1寫入“周次”,C1寫入“運動場地” ws['A1'] = '班級' ws['B1'] = '周次' ws['C1'] = '運動場地' # 從A2開始寫入classroom,B2開始寫入week,C2開始寫入sport for i in range(len(classroom)): ws[f'A{i + 2}'] = classroom[i] ws[f'B{i + 2}'] = week[i] ws[f'C{i + 2}'] = sport[i] # 將總表內容按照班級拆分到同一個工作簿的不同工作表大,標簽為“班級+分散運動安排” for grade in gradenum: ws_new = wb.create_sheet(title=f'大{grade}班分散運動安排') ws_new['A1'] = '班級' ws_new['B1'] = '周次' ws_new['C1'] = '運動場地' row = 2 for i in range(len(classroom)): if classroom[i].startswith(f'大{grade}'): ws_new[f'A{row}'] = classroom[i] ws_new[f'B{row}'] = week[i] ws_new[f'C{row}'] = sport[i] row += 1 # 保存到文件 output_file = path + r'\01 大班分散運動..xlsx' wb.save(output_file) print(f"Excel文件已保存到: {output_file}") # 刪除最后一行“第21周” # 重新打開保存的文件以進行進一步操作 wb = openpyxl.load_workbook(output_file) # 遍歷所有工作表,刪除最后一行 for sheet_name in wb.sheetnames: ws = wb[sheet_name] max_row = ws.max_row if max_row 1: # 確保不是只有標題行的工作表 # 逆序循環刪除倒數幾行 ws.delete_rows(max_row) # ws.delete_rows(max_row - 0, 1)刪除最后1行 21行消失 # ws.delete_rows(max_row - 1, 2)刪除最后2行 # ws.delete_rows(max_row - 1, 1)刪除第20周,19和21都在 # ws.delete_rows(max_row - 1, 3)刪除第20周,19和21都在 # ws.delete_rows(max_row - 2, 3)刪除最后3行,19、20、21消失 # 再次保存修改后的文件 wb.save(output_file) print(f"所有工作表的最后一行已刪除,并保存到: {output_file}")結果展示一、總表總表里生成有21周二、班級表刪除每個班級運動里面的最后一行如果想刪除最后2行也就是想刪除幾行數字寫第二個,最高行是刪除數減去1如果想隔行刪除,修改最高行減去的數字。二、游戲活動大班游戲活動就用大班運動的那個代碼。把備注補上批量修改字母,文字