【办公类-90-02】】20250215大班周计划四类活动的写法(分散运动、户外游戏、个别化综合)(基础列表采用读取WORD表格单元格数据,非采用切片组合)
背景需求:
做了中班的四类活动安排表,我顺便给大班做一套
【办公类-90-01】】20250213中班周计划四类活动的写法(分散运动、户外游戏、个别化(美工室图书吧探索室))-CSDN博客文章浏览阅读874次,点赞10次,收藏11次。【办公类-90-01】】20250213中班周计划四类活动的写法(分散运动、户外游戏、个别化(美工室图书吧探索室))https://blog.csdn.net/reasonsummer/article/details/145626428?sharetype=blogdetail&sharerId=145626428&sharerefer=PC&sharesource=reasonsummer&spm=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 * 20sp=[]
# 添加第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))
# 140classroom=[]for x in range(y): # 4for 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): # 4for 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 = 2for 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_rowif max_row > 1: # 确保不是只有标题行的工作表# 逆序循环删除倒数几行ws.delete_rows(max_row )# ws.delete_rows(max_row - 1, 1)删除第20周,19和21都在# ws.delete_rows(max_row - 1, 2)删除第20周和21,19在# 再次保存修改后的文件
wb.save(output_file)
print(f"所有工作表的最后一行已删除,并保存到: {output_file}")
结果展示
一、总表
总表里生成有21周
二、班级表
删除每个班级运动里面的最后一行
如果想删除最后2行
也就是想删除几行数字写第二个,最高行是删除数减去1
如果想隔行删除,修改最高行减去的数字。
二、游戏活动
大班游戏活动就用大班运动的那个代码。把备注补上
批量修改字母,文字
同时基础模板提取格式为索引6开始的文字
代码展示
'''
目的: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“的文件夹game = []
classroom = []
week = []# 这里是8个游戏场地,因为后面有递进,所以把最后一个 ,放到01前面,这样摆放后面才会正确)
gameall = [ '建构游戏1——绿操场(东)', '表演游戏2——广场砖', '角色游戏2——南侧草坪(西)','建构游戏2——302', '表演游戏1——绿操场(西)', '角色游戏1——南侧草坪(东)', '沙水游戏——中庭沙水区',
]
# game=[1,2,3,4,5]
# 规律是,第一组12345,第二组23451 第三组34512 第三组45123,第五组51234
# ss = gameall * 20sp=[]
# 添加第1组
sp= gameall.copy()
print(game)
# 添加第2-6组
for i in range(xz-1): # 总共需要添加4次,因为已经有一个初始组gameall =gameall[6:] +gameall[:6]print(f"第{i + 1}次提取的元素: {gameall}")for x in gameall:sp.append(x)
print(len(sp))# 49次game=[]
# # 手动复制3次
for x in range(y): # 7周一循环,最少3次=21周for yy in sp:game.append(yy)
# 提取前140个,正好20周,每周7个场次print("运用场地:", game)
print("游戏场地长度:", len(game))
# 140classroom=[]for x in range(y): # 4for 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): # 4for 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开始写入game
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}'] = game[i]# 将总表内容按照班级拆分到同一个工作簿的不同工作表大,标签为“班级+分散游戏安排”
for grade in gradenum:ws_new = wb.create_sheet(title=f'大{grade}班分散游戏安排')ws_new['A1'] = '班级'ws_new['B1'] = '周次'ws_new['C1'] = '游戏场地'row = 2for 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}'] = game[i]row += 1# 保存到文件
output_file = path + r'\02 大班分散游戏..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_rowif max_row > 1: # 确保不是只有标题行的工作表# 逆序循环删除倒数几行ws.delete_rows(max_row-0,1 )# 删除最后1行# 如果想倒着删除多行# ws.delete_rows(max_row - 1, 2) # 删除最后2行# 删除第20周,19和21都在# ws.delete_rows(max_row - 2, 3)# 删除最后3行# 再次保存修改后的文件
wb.save(output_file)
print(f"所有工作表的最后一行已删除,并保存到: {output_file}")
1分钟就写好了
一、总表
二、班级表
三、个别化
大班的个别化每周只有写一个个别化活动室,但实际上内容和中班每周写三个活动室是一样的思路
我发现它的基本模板规律是:
1、“室内美术、户外美术、户外美术+图+科+图+科”
2、“室内美术、户外美术、户外美术+科+图+科+图”
而且每个班级还表明了周一、周二、周三、周四
好吧,开始痛苦的基础模板制作
把基础模板核对是否正确
代码展示
'''
目的: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“的文件夹study = []
classroom = []
week = []
# for x in range(y): # 4
# 初始化基础模型
a = ['室内美工', '户外美术', '户外美术']
b=['图书吧', '科探室']*2
c=['科探室','图书吧', ]*2
print(a,b,c)l1 = [a[2]] + b[:] + a[:2]
l2 = c[:2] + a + b[:2]
l3 = a[1:] + c + [a[0]]
l4 = b[:3] + a + [c[0]]
l5 = a + c
l6 = b + a
l7 = [c[0]] + a + b[:3]
mx = l1 + l2 + l3 + l4 + l5 + l6 + l7
print(mx)
print(len(mx))# 将 mx 按每7个元素一组进行分组
grouped_mx = [mx[i:i+7] for i in range(0, len(mx), 7)]
print(grouped_mx)# for x in grouped_mx:
# print(x)study=[]
# # 手动复制3次
for x in range(y): # 7周一循环,最少3次=21周for yy in mx:study.append(yy)
# 提取前140个,正好20周,每周7个场次print("运用场地:", study)
print("个别化场地长度:", len(study))
# 140classroom=[]for x in range(y): # 4for 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): # 4for 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'] = '个别化场地'aa=classroom[:7]
# 探索室
bb=[’四]
cc=# 从A2开始写入classroom,B2开始写入week,C2开始写入study
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}'] = study[i]ws[f'C{i + 2}'] = '本周'+study[i]+'活动。'# 将总表内容按照班级拆分到同一个工作簿的不同工作表大,标签为“班级+分散个别化安排”for grade in gradenum:ws_new = wb.create_sheet(title=f'大{grade}班分散个别化安排')ws_new['A1'] = '班级'ws_new['B1'] = '周次'ws_new['C1'] = '个别化场地'row = 2for 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}'] = study[i]# ws_new[f'C{row}'] = '本周'+study[i]+'活动。'row += 1# 保存到文件
output_file = path + r'\03 大班个别化学习..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_rowif max_row > 1: # 确保不是只有标题行的工作表# 逆序循环删除倒数几行ws.delete_rows(max_row-0,1 )# 删除最后1行# 如果想倒着删除多行# ws.delete_rows(max_row - 1, 2) # 删除最后2行# 删除第20周,19和21都在# ws.delete_rows(max_row - 2, 3)# 删除最后3行# 再次保存修改后的文件
wb.save(output_file)
print(f"所有工作表的最后一行已删除,并保存到: {output_file}")
然后询问大班组长是否要吧(周一)写入?
结果:周一写在前面
查看房间使用星期,可探索室,大1-大6班都是固定的周一、周三,但是最后的大7班,一天是周一、一天是周三
同理发现图书吧也是大1班两天不同,其他班级相同
询问后这是正确的排法,避免出现使用同一个活动室的情况
这对我的想用遍历方式,配对‘班级’、‘房间’,‘星期’来说,就不适合了。
于是我立刻想到,用读取docx表格的方式,将49个元素做成一个列表
顺利将49个元素提取了
(这是最方便的方法了。下次做表格统计,也用这个方法,直接提取,不用切片了)
然后识别cell里面是否有“一二三四五”,有就把汉字放入最前面,删除括号和里面的周X
'''
目的:2024年2月大班总部分散个别化场地,每星期只有一条(各班滚动排)
# 提取word里面的表格里面的49个元素
大班是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“的文件夹study = []
classroom = []
week = []
# for x in range(y): # 4
# 初始化基础模型
from docx import Document# 打开Word文档
doc = Document(path+r'\03 大班 2025.2个别化活动安排(1).docx')# 获取文档中的所有表格
tables = doc.tables# 检查是否有表格存在
if len(tables) >= 0:# 获取第一张表格table = tables[0]# 初始化一个空列表来存储单元格的值cell_values = []# 定义要查找的汉字target_chars = ['一', '二', '三', '四', '五']# 遍历表格的行和列,提取指定单元格的值for row in range(1, 8): # 从第2行到第7行(索引从0开始)for col in range(1, 8): # 从第2列到第7列(索引从0开始)cell = table.cell(row, col).textprint(f"Original cell content: {cell}")# 检查单元格内容是否包含目标汉字for char in target_chars:if char in cell:# 将汉字加到单元格内容的前面,并舍弃最后4个字符modified_cell = char + cell[:-4]cell_values.append(modified_cell)breakelse:# 如果单元格内容不包含目标汉字,直接添加原始内容cell_values.append(cell)# cell_values.append(cell.text)
else:print("文档中没有表格")# 打印结果
print(cell_values)
print(len(cell_values))
# 49# # 将 mx 按每7个元素一组进行分组
# grouped_mx = [mx[i:i+7] for i in range(0, len(mx), 7)]
# print(grouped_mx)# # for x in grouped_mx:
# # print(x)study=[]
# # 手动复制3次
for x in range(y): # 7周一循环,最少3次=21周for yy in cell_values:study.append(yy)
# 提取前140个,正好20周,每周7个场次print("运用场地:", study)
print("个别化场地长度:", len(study))
# 140classroom=[]for x in range(y): # 4for 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): # 4for 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开始写入study
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}'] = study[i]ws[f'C{i + 2}'] = '本周'+study[i]+'活动。'# 将总表内容按照班级拆分到同一个工作簿的不同工作表大,标签为“班级+分散个别化安排”for grade in gradenum:ws_new = wb.create_sheet(title=f'大{grade}班分散个别化安排')ws_new['A1'] = '班级'ws_new['B1'] = '周次'ws_new['C1'] = '个别化场地'row = 2for 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}'] = study[i]ws_new[f'C{row}'] = '本周'+study[i]+'活动。'row += 1# 保存到文件
output_file = path + r'\03 大班个别化学习..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_rowif max_row > 1: # 确保不是只有标题行的工作表# 逆序循环删除倒数几行ws.delete_rows(max_row-0,1 )# 删除最后1行# 如果想倒着删除多行# ws.delete_rows(max_row - 1, 2) # 删除最后2行# 删除第20周,19和21都在# ws.delete_rows(max_row - 2, 3)# 删除最后3行# 再次保存修改后的文件
wb.save(output_file)
print(f"所有工作表的最后一行已删除,并保存到: {output_file}")
四、合并表格,不需要填充黄色了
'''
05 组合三类安排表内容到 一个excel(因为本次运动\游戏都是一天,而不是五天,可以合并在一起,便于复制.黄色一条说明是美术室周,个别化要写美术地内容)
作者:阿夏
时间:2025年2月18日
'''
import os
import pandas as pd
from openpyxl import load_workbook
from openpyxl.styles import PatternFill
from openpyxl.utils import get_column_letter
from copy import deepcopy
import xlrd,time
import xlwt
import openpyxl
from openpyxl import load_workbook# 定义文件夹路径和文件名列表
folder_path = r'C:\Users\jg2yXRZ\OneDrive\桌面\202502 大班3类活动批量'
new = folder_path + r'\三类表格'
new_name = folder_path + r'\05 总园大班周计划三类活动写法.xlsx'# 过滤出所有的 Excel 文件(假设扩展名为 .xlsx)
excel_files = [file for file in os.listdir(new) if file.endswith('.xlsx')]
print("Excel 文件名:", excel_files)
# ['01 大班分散运动..xlsx', '02 大班户外游戏..xlsx', '03 大班个别化..xlsx', '04 大班美工室游戏..xlsx']# 读取第一个 Excel 文件并复制它
first_file = os.path.join(new, excel_files[0])
wb = load_workbook(first_file)
wb.save(new_name)# 打开复制后的文件以进行修改
copied_file = new_name
wb_copy = load_workbook(copied_file)
ws_copy = wb_copy.active# 假设excel_files, new, ws_copy, and copied_file已经在其他地方定义
n=1
for file in excel_files[1:]:file_path = os.path.join(new, file)wb_source = load_workbook(file_path)# 获取所有工作表名称sheet_names = [sheet.title for sheet in wb_source.worksheets]print("表名:", sheet_names)for sheet_name in sheet_names[1:]:# 检查工作表名称前3个字是否匹配matched_sheet = Nonefor target_sheet_name in ws_copy.parent.sheetnames:if sheet_name[:3] == target_sheet_name[:3]:matched_sheet = target_sheet_namebreakif matched_sheet:print(f"正在处理工作表: {sheet_name} -> {matched_sheet}")# 读取源工作表的C列数据(包括标题)source_df = pd.read_excel(file_path, sheet_name=sheet_name, usecols='C')print(source_df)# 调试:打印源数据框的列(针对工作表名称)print(f"源数据框的列 {sheet_name}: {source_df.columns}")# 获取源数据框的列名,这里应该是'C'列column_name = source_df.columns[0]if column_name in source_df.columns:# 获取目标工作表对象target_ws = ws_copy.parent[matched_sheet]# 将数据写入目标工作表的D列(包括标题)# 首先写入标题target_ws.cell(row=1, column=n+3).value = column_name # Column n+4 corresponds to 'D', 'E', 'F', etc.# 然后写入数据for i, value in enumerate(source_df[column_name], start=2): # Start from row 2 to leave space for the headertarget_ws.cell(row=i, column=n+3).value = value# 复制源单元格样式到目标单元格source_cell = wb_source[sheet_name].cell(row=i, column=3) # Source cell is in column C (index 3)target_cell = target_ws.cell(row=i, column=n+4)else:print(f"Column '{column_name}' not found in {sheet_name}")else:print(f"没有找到与工作表 {sheet_name} 前3个字匹配的目标工作表")# 增加列索引以处理下一个文件的数据到下一列n += 1# 自动调整最适合的列宽
for sheet in wb_copy.sheetnames:ws = wb_copy[sheet]for col in ws.columns:max_length = 0column = col[0].column_letter # Get the column namefor cell in col:try:if len(str(cell.value)) > max_length:max_length = len(str(cell.value))except:passadjusted_width = (max_length + 2) * 1.8 # Adding a little extra spacews.column_dimensions[column].width = adjusted_width# ## 删除第一张工作表“总表”first_sheet = wb_copy.worksheets[0]
wb_copy.remove(first_sheet)# 保存修改后的文件
wb_copy.save(copied_file)
print("操作完成!")
这是我写代码的第4年,第6次做周计划的表格,终于发现一个更简单的基础模式制作方式——直接用python读取word的第一张表格的内部范围。就可以做出基本列表了!
相关文章:
【办公类-90-02】】20250215大班周计划四类活动的写法(分散运动、户外游戏、个别化综合)(基础列表采用读取WORD表格单元格数据,非采用切片组合)
背景需求: 做了中班的四类活动安排表,我顺便给大班做一套 【办公类-90-01】】20250213中班周计划四类活动的写法(分散运动、户外游戏、个别化(美工室图书吧探索室))-CSDN博客文章浏览阅读874次࿰…...
19.4.6 读写数据库中的二进制数据
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 需要北风数据库的请留言自己的信箱。 北风数据库中,类别表的图片字段在【数据表视图】中显示为Bitmap Image࿱…...
使用 Python 爬虫获取微店快递费用 item_fee API 接口数据
在电商运营中,快递费用是影响商家利润和用户体验的重要因素之一。微店作为国内知名的电商平台,提供了丰富的 API 接口供开发者使用,其中也包括查询商品快递费用的接口。通过调用微店的 item_fee 接口,开发者可以获取指定商品的快递…...
蓝桥杯篇---温度传感器 DS18B20
文章目录 前言DS18B201. DS18B20 引脚说明2. 单总线通信协议3. DS18B20 操作流程初始化写操作读操作 4. 示例代码5. 代码说明6. 注意事项总结 前言 本文简单介绍了IAP15F2K61S2中温度传感器模块DS18B20的使用。 DS18B20 DS18B20 是一款数字温度传感器,采用单总线&…...
NAC网络接入控制三种认证方式802.1X认证、MAC认证和Portal认证
NAC网络接入控制三种认证方式802.1X认证、MAC认证和Portal认证 1.NAC简介2.802.1X认证3. MAC认证4. Portal认证 1.NAC简介 NAC(Network Access Control)称为网络接入控制,通过对接入网络的客户端和用户的认证保证网络的安全,是一…...
字节Trae使用感想(后端)
前言 昨天分享了字节哥的Trae从0到1创作模式构建一个vue前端项目,今天又来试试她的后端项目能力。不是我舔,不得不说确实不错。可惜现在曾经没有好好学习,进不了字节。既然进不了字节,那我就用字节哥的产品吧。 后面有惊喜…...
蓝桥杯 Java B 组之简单动态规划(爬楼梯、斐波那契数列)
Day 6:简单动态规划(爬楼梯、斐波那契数列) 动态规划(Dynamic Programming,简称 DP)是计算机科学中的一种算法设计思想,用来解决最优解问题,它的核心思想是将大问题分解为小问题&am…...
传统 I/O 和 NIO 的主要区别
在 Java 中,文件读写可以通过传统的 I/O 方式(如 InputStream 和 OutputStream)或 NIO(New I/O)方式(如 FileChannel)来实现。NIO 的 FileChannel 提供了更高效的文件操作方式,尤其是…...
0基础学LabVIEW
对于零基础的朋友来说,学习LabVIEW需要一个科学的学习路径和方法。通过观看优质的B站教程打好基础,再结合实际项目进行实践操作,能够快速提升LabVIEW的应用能力。以下是从入门到进阶的学习建议。 一、利用B站入门教程打基础 筛选优质教程…...
二〇二四年终总结
写在前面 简单总结一下告诉自己,曾经活着 不必太纠结于当下,也不必太忧虑未来,当你经历过一些事情的时候,眼前的风景已经和从前不一样了。——村上春树 原本应该 24 年年中的时候写 23 年年终的总结,但是一直拖着&…...
设计模式:状态模式
状态机有3个要素:状态,事件,动作。 假如一个对象有3个状态:S1、S2、S3。影响状态的事件有3个:E1、E2、E3。每个状态下收到对应事件的时候,对象的动作为AXY。那么该对象的状态机就可以用如下表格来表示。S1收到事件E1的…...
SQLite Select 语句详解
SQLite Select 语句详解 SQLite 是一个轻量级的数据库管理系统,以其简洁的设计和高效的性能被广泛应用于各种场景。在 SQLite 中,SELECT 语句是用于查询数据库中的数据的命令。本文将详细介绍 SQLite 的 SELECT 语句,包括其基本语法、常用功…...
【深度学习】计算机视觉(CV)-目标检测-Faster R-CNN —— 高精度目标检测算法
1.什么是 Faster R-CNN? Faster R-CNN(Region-based Convolutional Neural Network) 是 目标检测(Object Detection) 领域的一种 双阶段(Two-Stage) 深度学习方法,由 Ross Girshick…...
静默安装OGG for MySQL微服务版本,高效开展数据同步和迁移
一、背景 本文从Oracle GoldenGate微服务版的概念和组件介绍开始,从零介绍了怎么开始安装GoldenGate 21c for Oracle微服务版本的软件及部署。当然了,微服务版除新功能外包含传统版所有的功能。 二、安装部署 (一)下载OGG for …...
排序算法衍生问题
排序算法衍生问题 引言 排序算法是计算机科学中的基本问题之一,广泛应用于各种实际场景中。尽管有多种排序算法可供选择,但每种算法都有其特定的优势和局限性。本文将探讨排序算法中的一些衍生问题,包括算法效率、稳定性、内存占用等方面&a…...
DeepSeek自动化写作软件
DeepSeek写作软件的三大核心功能 对于内容创作者来说,写作不仅是表达思想的过程,更是一项需要投入大量时间和精力的任务。面对日益增长的内容需求,写作效率低下、内容质量不高等问题,常常让创作者感到焦虑。而 DeepSeek 写作软件…...
Python数据可视化 - Matplotlib教程
文章目录 前言一、Matplotlib简介及安装1. Matplotlib简介2. 安装Matplotlib 二、Matplotlib Pyplot1. Pyplot介绍2. Pyplot中方法介绍2.1 创建和管理图形2.2 绘制图形2.3 设置图形属性2.4 保存和展示 三、Matplotlib绘图标记1. 介绍2. 基本用法3. 标记大小与颜色4. 标记样式列…...
集成测试总结文档
1. 集成测试的定义 集成测试(Integration Testing)是在单元测试之后,将多个独立的软件模块或组件组合在一起进行测试的过程,目的是验证这些模块之间的接口、数据传递、协作逻辑是否符合设计要求,并发现因集成引发的缺…...
Retrieval-Augmented Generation for LargeLanguage Models: A Survey
标题:Retrieval-Augmented Generation for Large Language Models: A Survey 作者:Yunfan Gaoa , Yun Xiongb , Xinyu Gaob , Kangxiang Jiab , Jinliu Panb , Yuxi Bic , Yi Daia , Jiawei Suna , Meng Wangc , and Haofen Wang 1. By referencing ext…...
Day3 25/2/16 SUN
【一周刷爆LeetCode,算法大神左神(左程云)耗时100天打造算法与数据结构基础到高级全家桶教程,直击BTAJ等一线大厂必问算法面试题真题详解(马士兵)】https://www.bilibili.com/video/BV13g41157hK?p4&v…...
使用maven-archetype制作项目脚手架
使用maven-archetype制作项目脚手架 maven plugin依赖 <plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-archetype-plugin</artifactId><version>3.0.1</version> </plugin>导出模板 在模板项目执行…...
Spring AOP源码解析
前言 Spring AOP(面向切面编程)是 Spring 框架的核心模块之一,其底层通过 动态代理 和 字节码增强 实现。以下是 Spring AOP 的源码解析,涵盖核心流程、关键类及实际应用场。 一、Spring AOP 的核心组件 核心接口 Joinpoint&am…...
1.buuctf [BJDCTF2020]EasySearch
进入题目页面如下 尝试输入弱口令密码都显示错误 看题目是search,扫描一下根目录试试 /index.php.swp 得到源码 进行一下代码审计 <?php//开启输出缓冲,将所有的输出内容先保存到缓冲区,而不是直接输出到浏览器。ob_start();//定义一个…...
小米 R3G 路由器刷机教程(Pandavan)
小米 R3G 路由器刷机教程(Pandavan) 一、前言 小米 R3G 路由器以其高性价比和稳定的性能备受用户青睐。然而,原厂固件的功能相对有限,难以满足高级用户的个性化需求。刷机不仅可以解锁路由器的潜能,还能通过第三方固…...
【ISO 14229-1:2023 UDS诊断(会话控制0x10服务)测试用例CAPL代码全解析③】
ISO 14229-1:2023 UDS诊断【会话控制0x10服务】_TestCase03 作者:车端域控测试工程师 更新日期:2025年02月15日 关键词:UDS诊断、0x10服务、诊断会话控制、ECU测试、ISO 14229-1:2023 TC10-003测试用例 用例ID测试场景验证要点参考条款预期…...
deepseek与gpt,核心原理对比
DeepSeek与GPT作为AI大模型,在自然语言处理等领域展现出强大的能力,它们的核心原理对比主要体现在模型架构、训练策略、资源效率以及应用场景优化等方面。 一、模型架构 DeepSeek 混合专家(MoE)框架:DeepSeek采用了混合专家框架,其内部包含多个“专家”子模块,每个子模…...
第1章大型互联网公司的基础架构——1.1 单机房的内部架构
所谓的应用后台就是指机房。机房架构是一个庞大的工程,你可能听说过很多大型互联网公司曾在各种技术峰会上介绍它们的“三地五中心”多机房,甚至是全球异地多活机房等,这些“高大上”的话题讨论的都是机房架构的内容。机房最简单的形式是单机…...
如何在 Vue 3 中使用 Vue Router 和 Vuex
在 Vue 3 中使用 Vue Router 1. 安装 Vue Router 在项目根目录下,通过 npm 或 yarn 安装 Vue Router 4(适用于 Vue 3): npm install vue-router4 # 或者使用 yarn yarn add vue-router42. 创建路由配置文件 在 src 目录下创建…...
网络安全月度报告
3.1.1网络现状及安全挑战 网络的出现给人们的工作和生活带来了极大的便利,但同时也带来了极大的安全风险。在信息传输和交换时,需要对通信信道上传输的机密数据进行加密;在数据存储和共享时,需要对数据库进行安全的访问控制和对访…...
人大金仓国产数据库与PostgreSQL
一、简介 在前面项目中,我们使用若依前后端分离整合人大金仓,在后续开发过程中,我们经常因为各种”不适配“问题,但可以感觉得到大部分问题,将人大金仓视为postgreSQL就能去解决大部分问题。据了解,Kingba…...
Python的imutils库详细介绍
imutils 是一个专为简化OpenCV(计算机视觉库)常见操作而设计的Python工具库,提供了一系列便捷函数,使图像和视频处理更加高效和简洁。以下是对其功能、安装及用法的详细介绍: 1. 安装方法 通过pip安装: p…...
【ISO 14229-1:2023 UDS诊断全量测试用例清单系列:第三节】
ISO 14229-1:2023 UDS诊断服务测试用例全解析(安全访问0x27服务) 作者:车端域控测试工程师 更新日期:2025-02-12 关键词:UDS安全访问、0x27服务、ISO 14229-1:2023、ECU安全验证 一、服务概述 安全访问服务࿰…...
DeepSeek与医院电子病历的深度融合路径:本地化和上云差异化分析
一、引言 1.1 研究背景与意义 在医疗信息化快速发展的当下,电子病历系统已成为医院信息管理的核心构成。电子病历(EMR)系统,是指医务人员在医疗活动过程中,使用医疗机构信息系统生成的文字、符号、图标、图形、数据、影像等数字化信息,并能实现存储、管理、传输和重现的…...
⚡️《静电刺客的猎杀手册:芯片世界里的“千伏惊魂“》⚡️
前言: 在这个电子产品无孔不入的时代,我们每天都在与一群隐形刺客打交道——它们身怀数千伏特的高压绝技,能在0.1秒内让价值百万的芯片灰飞烟灭。这就是静电放电(ESD),电子工业界最令人闻风丧胆的"沉默…...
GPU 英伟达GPU架构回顾
1999 年,英伟达发明了 GPU(graphics processing unit),本节将介绍英伟达 GPU 从 Fermi 到 Blackwell 共 9 代架构,时间跨度从 2010 年至 2024 年,具体包括费米(Feimi)、开普勒&#…...
Git 分布式版本控制
Git 是分布式版本控制 文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据 总结 前言 git基本流程 本地git安装并将bin目录配置到环境变量path中,右键git bash后配置本地用户名与邮箱 git congig --global user.name "" || …...
【网络】协议与网络版计算器
协议与网络版计算器 文章目录 1.协议的概念 1.1序列化与反序列化 2.网络版计算器 2.1封装套接字2.2协议定制 2.2.1Jsoncpp2.2.2报文处理 2.3会话层:TcpServer2.4应用层:Calculate2.5表示层:Service2.6应用层、表示层和会话层->应用层 …...
AI语言模型的技术之争:DeepSeek与ChatGPT的架构与训练揭秘
云边有个稻草人-CSDN博客 目录 第一章:DeepSeek与ChatGPT的基础概述 1.1 DeepSeek简介 1.2 ChatGPT简介 第二章:模型架构对比 2.1 Transformer架构:核心相似性 2.2 模型规模与参数 第三章:训练方法与技术 3.1 预训练与微调…...
【Python爬虫(5)】HTTP协议:Python爬虫的基石
【Python爬虫】专栏简介:本专栏是 Python 爬虫领域的集大成之作,共 100 章节。从 Python 基础语法、爬虫入门知识讲起,深入探讨反爬虫、多线程、分布式等进阶技术。以大量实例为支撑,覆盖网页、图片、音频等各类数据爬取ÿ…...
机器学习数学基础:24.随机事件与概率
一、教程目标 本教程致力于帮助零基础或基础薄弱的学习者,全面掌握概率论与数理统计的基础公式,透彻理解核心概念,熟练学会应用解题技巧,最终能够轻松应对期末或考研考试。 二、适用人群 特别适合那些对概率论与数理统计知识了…...
Mongodb数据管理
Mongodb数据管理 1.登录数据库,查看默认的库 [rootdb51~]# mongo> show databases; admin 0.000GB config 0.000GB local 0.000GB> use admin switched to db admin > show tables system.version > admin库:admin 是 MongoDB 的管理…...
vue3响应式丢失解决办法(三)
vue3的响应式的理解,与普通对象的区别(一) vue3 分析总结响应式丢失问题原因(二) 经过前面2篇文章,知道了响应式为什么丢失了,但是还是碰到了丢失情况,并且通过之前的内容还不能解…...
Django中数据库迁移命令
在 Django 中,数据库迁移是确保数据库结构与 Django 模型定义保持一致的重要过程。以下是 Django 中常用的数据库迁移命令: 1. python manage.py makemigrations 功能:此命令用于根据 Django 项目的模型文件(models.pyÿ…...
LLM之循环神经网络(RNN)
在人工智能的领域中,神经网络是推动技术发展的核心力量。今天,让我们深入探讨循环神经网络(RNN) 一、神经网络基础 (1)什么是神经网络 神经网络,又称人工神经网络,其设计灵感源于人…...
TDengine 客户端连接工具 taos-Cli
简介工具获取运行命令行参数 基础参数高级参数 数据导出/导入 数据导出数据导入 执行 SQL 脚本使用小技巧 TAB 键自动补全设置字符列显示宽度其它 错误代码表 简介 TDengine 命令行工具(以下简称 TDengine CLI)是用户操作 TDengine 实例并与之交互最简…...
Express 路由路径正则详解
在 Express 中,使用正则表达式可以定义更加灵活和复杂的路由。 1. 基本语法 在 Express 中,路由路径可以是一个字符串、字符串模式或者正则表达式。当使用正则表达式时,将其作为路由路径传入 app.METHOD() 方法(METHOD 可以是 g…...
快速设置 Docker 网络代理配置
Docker Client - 代理访问远程的 Docker Daemon 在 Client 端设置代理其实就是设置 Linux 系统的代理,从而让系统的命令行可以通过代理连接到外部的网络。一般只需要配置 HTTP_PROXY 与 HTTPS_PROXY 这两个即可。 临时生效: 在命令行中执行下面的命令&…...
JVM ②-双亲委派模型 || 垃圾回收GC
这里是Themberfue 在上节课对内存区域划分以及类加载的过程有了简单的了解后,我们再了解其他两个较为重要的机制,这些都是面试中常考的知识点,有必要的话建议背出来,当然不是死记硬背,而是要有理解的背~~~如果对 JVM …...
内容中台驱动企业数字化内容管理高效协同架构
内容概要 在数字化转型加速的背景下,企业对内容管理的需求从单一存储向全链路协同演进。内容中台作为核心支撑架构,通过统一的内容资源池与智能化管理工具,重塑了内容生产、存储、分发及迭代的流程。其核心价值在于打破部门壁垒,…...
人工智障的软件开发-自动流水线CI/CD篇-docker+jenkins部署之道
指令接收:「需要自动构建系统」 系统检测:目标开发一个软件已完成代码仓库-轻盈的gitea,开始添加自动流水线 启动应急冷却协议:准备承受Java系应用的资源冲击 核心组件锁定:构建老将军Jenkins(虽然年迈但依…...