当前位置: 首页 > article >正文

【办公类-53-04】20250209Python模仿制作2024学年第二学期校历

背景需求:

马上开学了,又要制作校历(删划节假日)。之前我都是用网络的图片,然后在PPT里修改。

存在问题:

网络校历是从周日开始的,但日常我们老师做教案,都是默认从周一到周五(周六周日)

所以这学期,我想用Python模仿网上图片,生成EXCEL的校历图片,同时将“周日”放到最后一列显示,确保“周一”在第一列。

1.0版本——与网络版一样(周日开始)

代码展示

'''
模仿制作2025年2月下学期的校历(只有日期)周日在前)
星火讯飞、阿夏
20250209
'''
import datetime
import openpyxl
from openpyxl.styles import Alignment, PatternFill
import timepath = r'C:\Users\jg2yXRZ\OneDrive\桌面\20250217校历'
title = '2024学年第二学期校历'
# 起始日期前空几天
m=1# 创建一个新的Excel工作簿
workbook = openpyxl.Workbook()
sheet = workbook.active# 设置标题行
title_row = ["周次", "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"]
sheet.append(title_row)# 设置日期范围
start_date = datetime.date(2025, 2, 17)
end_date = datetime.date(2025, 6, 30)# 生成日期列表并包含标题行和空格行
date_list = [title_row]
for i in range(m):date_list.append([])  # 添加一个空格行
current_day = start_datewhile current_day <= end_date:date_list.append([current_day])current_day += datetime.timedelta(days=1)print(date_list)# 计算周数和将日期列表写入Excel
current_week = 1
for i in range(1, len(date_list), 7):# 获取当前周的日期列表week_dates = date_list[i:i+7]# 在A列中添加周次sheet.cell(row=current_week + 1, column=1).value = f"{current_week}"sheet.cell(row=current_week + 1, column=1).alignment = Alignment(horizontal='center', vertical='center')# 在正确的单元格中添加日期for j in range(len(week_dates)):cell = sheet.cell(row=current_week + 1, column=j + 2)# 检查日期是否为当月的第一天,如果是则显示“月/1”,否则显示“月/日”if week_dates[j]:  # Check if the list is not emptyif week_dates[j][0].year == 2025 and week_dates[j][0].month == 2 and week_dates[j][0].day == 17:cell.value = f"{week_dates[j][0].year}/{week_dates[j][0].month}/{week_dates[j][0].day}"elif week_dates[j][0].day == 1:cell.value = f"{week_dates[j][0].month}/{week_dates[j][0].day}"else:cell.value = f"{week_dates[j][0].day}"cell.alignment = Alignment(horizontal='center', vertical='center')# 更新周数并移动到下一周current_week += 1# 保存工作簿
workbook.save(path + fr"\周日在前{title}.xlsx")
time.sleep(2)

在第一个日期(2025.2.17)前面添加1个空格

原始表就做好了(从周日开始。2.16是周日,空,不写)

继续把表格美化一下,和网络底纹一样


'''
模仿制作2025年2月下学期的校历(只有日期)周日在前,美化
星火讯飞、阿夏
20250209
'''
from openpyxl import Workbook
from openpyxl.styles import PatternFill, Border, Side, Alignment, Font
import datetime
import time
from openpyxl.utils import get_column_letterpath = r'C:\Users\jg2yXRZ\OneDrive\桌面\20250217校历'
title = '2024学年第二学期校历'
# 起始日期前空几天
m=1# 创建一个新的Excel工作簿
workbook = Workbook()
sheet = workbook.active# 设置标题行
# title_row = ["周次",  "星期一", "星期二", "星期三", "星期四", "星期五", "星期六","星期日",]
# title_row = ["周次",  "一", "二", "三", "四", "五", "六","日",]
title_row = ["周次", "日", "一", "二", "三", "四", "五", "六"]
sheet.append(title_row)# 设置日期范围
start_date = datetime.date(2025, 2, 17)
end_date = datetime.date(2025, 6, 30)# 生成日期列表并包含标题行和空格行
date_list = [title_row]
for i in range(m):date_list.append([])  # 添加一个空格行current_day = start_datewhile current_day <= end_date:date_list.append([current_day])current_day += datetime.timedelta(days=1)# 计算周数和将日期列表写入Excel
current_week = 1
for i in range(1, len(date_list), 7):# 获取当前周的日期列表week_dates = date_list[i:i+7]# 在A列中添加周次sheet.cell(row=current_week + 1, column=1).value = f"{current_week}"cell = sheet.cell(row=current_week + 1, column=1)cell.alignment = Alignment(horizontal='center', vertical='center')# 设置A列单元格边框样式为黑色实线thin_border = Border(left=Side(style='thin', color='000000'), right=Side(style='thin', color='000000'), top=Side(style='thin', color='000000'), bottom=Side(style='thin', color='000000'))cell.border = thin_bordercell.font = Font(size=18)# 在正确的单元格中添加日期for j in range(len(week_dates)):cell = sheet.cell(row=current_week + 1, column=j + 2)# 检查日期是否为当月的第一天,如果是则显示“月/1”,否则显示“月/日”if week_dates[j]:  # Check if the list is not emptyif week_dates[j][0].year == 2025 and week_dates[j][0].month == 2 and week_dates[j][0].day == 17:cell.value = f"{week_dates[j][0].year}/{week_dates[j][0].month}/{week_dates[j][0].day}"elif week_dates[j][0].day == 1:cell.value = f"{week_dates[j][0].month}/{week_dates[j][0].day}"else:cell.value = f"{week_dates[j][0].day}"cell.alignment = Alignment(horizontal='center', vertical='center')# 根据月份设置单元格底纹颜色month = week_dates[j][0].monthif month == 2:cell.fill = PatternFill(start_color="FFFFCC", end_color="FFFFCC", fill_type="solid")  # 浅黄色elif month == 3:cell.fill = PatternFill(start_color="FFCCCC", end_color="FFCCCC", fill_type="solid")  # 浅红色elif month == 4:cell.fill = PatternFill(start_color="CCFFCC", end_color="CCFFCC", fill_type="solid")  # 浅绿色elif month == 5:cell.fill = PatternFill(start_color="CCCCCC", end_color="CCCCCC", fill_type="solid")  # 浅灰色elif month == 6:cell.fill = PatternFill(start_color="FFCC99", end_color="FFCC99", fill_type="solid")  # 浅橘色# 设置单元格边框样式为黑色实线thin_border = Border(left=Side(style='thin', color='000000'), right=Side(style='thin', color='000000'), top=Side(style='thin', color='000000'), bottom=Side(style='thin', color='000000'))cell.border = thin_border# 设置字体大小为18磅if week_dates[j][0].year == 2025 and week_dates[j][0].month == 2 and week_dates[j][0].day == 17:cell.font = Font(size=13)cell.alignment = Alignment(horizontal='center', vertical='center')else:cell.font = Font(size=18)cell.alignment = Alignment(horizontal='center', vertical='center')# 更新周数并移动到下一周current_week += 1# 确保标题行的所有单元格也居中且有框线,并将第一行标题单元格底色设置为浅蓝色
for col in range(1, len(title_row) + 1):cell = sheet.cell(row=1, column=col)cell.alignment = Alignment(horizontal='center', vertical='center')thin_border = Border(left=Side(style='thin', color='000000'), right=Side(style='thin', color='000000'), top=Side(style='thin', color='000000'), bottom=Side(style='thin', color='000000'))cell.border = thin_borderif col >= 1 and col <= 8:  # Apply blue fill to A1-H1cell.fill = PatternFill(start_color="ADD8E6", end_color="ADD8E6", fill_type="solid")  # 浅蓝色cell.font = Font(size=18)# A列第二行开始,单元格的填充底色与B列单元格颜色相同
for row in range(2, sheet.max_row + 1):for col in range(1, 2):  # Apply fill from B column to A-H columnsb_cell = sheet.cell(row=row, column=col + 1)a_cell = sheet.cell(row=row, column=col)a_cell.fill = b_cell.fill.copy()  # Use copy() to avoid unhashable type error# 设置所有行的行高和列宽
for row in range(1, sheet.max_row + 1):sheet.row_dimensions[row].height = 30for col in range(1, sheet.max_column + 1):column_letter = get_column_letter(col)sheet.column_dimensions[column_letter].width = 10  # Set width to a reasonable value for better readability#  在第一行上方插入一个空行,然后合并A1-H1,写入“第二学期”20磅,居中
sheet.insert_rows(1)
sheet.merge_cells('A1:H1')
sheet.cell(row=1, column=1).value = "上海市中小学2024学年度第二学期校历(阿夏20250209)"
sheet.cell(row=1, column=1).alignment = Alignment(horizontal='center', vertical='center')
sheet.cell(row=1, column=1).font = Font(size=18)
sheet.cell(row=1, column=1).border = thin_border
sheet.cell(row=1, column=1).fill = PatternFill(start_color="ADD8E6", end_color="ADD8E6", fill_type="solid")  # 浅蓝色# 保存工作簿
workbook.save(path + fr"\周日在前美化{title}.xlsx")
time.sleep(2)

代码展示


'''
模仿制作2025年2月下学期的校历(只有日期)
星火讯飞、阿夏
20250209
'''
from openpyxl import Workbook
from openpyxl.styles import PatternFill, Border, Side, Alignment, Font
import datetime
import time
from openpyxl.utils import get_column_letterpath = r'C:\Users\jg2yXRZ\OneDrive\桌面\20250217校历'
title = '2024学年第二学期校历'
# 起始日期前空几天
m=0# 创建一个新的Excel工作簿
workbook = Workbook()
sheet = workbook.active# 设置标题行
# title_row = ["周次",  "星期一", "星期二", "星期三", "星期四", "星期五", "星期六","星期日",]
title_row = ["周次",  "一", "二", "三", "四", "五", "六","日",]
sheet.append(title_row)# 设置日期范围
start_date = datetime.date(2025, 2, 17)
end_date = datetime.date(2025, 6, 30)# 生成日期列表并包含标题行和空格行
date_list = [title_row]
for i in range(m):date_list.append([])  # 添加一个空格行current_day = start_datewhile current_day <= end_date:date_list.append([current_day])current_day += datetime.timedelta(days=1)# 计算周数和将日期列表写入Excel
current_week = 1
for i in range(1, len(date_list), 7):# 获取当前周的日期列表week_dates = date_list[i:i+7]# 在A列中添加周次sheet.cell(row=current_week + 1, column=1).value = f"{current_week}"cell = sheet.cell(row=current_week + 1, column=1)cell.alignment = Alignment(horizontal='center', vertical='center')# 设置A列单元格边框样式为黑色实线thin_border = Border(left=Side(style='thin', color='000000'), right=Side(style='thin', color='000000'), top=Side(style='thin', color='000000'), bottom=Side(style='thin', color='000000'))cell.border = thin_bordercell.font = Font(size=18)# 在正确的单元格中添加日期for j in range(len(week_dates)):cell = sheet.cell(row=current_week + 1, column=j + 2)# 检查日期是否为当月的第一天,如果是则显示“月/1”,否则显示“月/日”if week_dates[j]:  # Check if the list is not emptyif week_dates[j][0].year == 2025 and week_dates[j][0].month == 2 and week_dates[j][0].day == 17:cell.value = f"{week_dates[j][0].year}/{week_dates[j][0].month}/{week_dates[j][0].day}"elif week_dates[j][0].day == 1:cell.value = f"{week_dates[j][0].month}/{week_dates[j][0].day}"else:cell.value = f"{week_dates[j][0].day}"cell.alignment = Alignment(horizontal='center', vertical='center')# 根据月份设置单元格底纹颜色month = week_dates[j][0].monthif month == 2:cell.fill = PatternFill(start_color="FFFFCC", end_color="FFFFCC", fill_type="solid")  # 浅黄色elif month == 3:cell.fill = PatternFill(start_color="FFCCCC", end_color="FFCCCC", fill_type="solid")  # 浅红色elif month == 4:cell.fill = PatternFill(start_color="CCFFCC", end_color="CCFFCC", fill_type="solid")  # 浅绿色elif month == 5:cell.fill = PatternFill(start_color="CCCCCC", end_color="CCCCCC", fill_type="solid")  # 浅灰色elif month == 6:cell.fill = PatternFill(start_color="FFCC99", end_color="FFCC99", fill_type="solid")  # 浅橘色# 设置单元格边框样式为黑色实线thin_border = Border(left=Side(style='thin', color='000000'), right=Side(style='thin', color='000000'), top=Side(style='thin', color='000000'), bottom=Side(style='thin', color='000000'))cell.border = thin_border# 设置字体大小为18磅if week_dates[j][0].year == 2025 and week_dates[j][0].month == 2 and week_dates[j][0].day == 17:cell.font = Font(size=13)cell.alignment = Alignment(horizontal='center', vertical='center')else:cell.font = Font(size=18)cell.alignment = Alignment(horizontal='center', vertical='center')# 更新周数并移动到下一周current_week += 1# 确保标题行的所有单元格也居中且有框线,并将第一行标题单元格底色设置为浅蓝色
for col in range(1, len(title_row) + 1):cell = sheet.cell(row=1, column=col)cell.alignment = Alignment(horizontal='center', vertical='center')thin_border = Border(left=Side(style='thin', color='000000'), right=Side(style='thin', color='000000'), top=Side(style='thin', color='000000'), bottom=Side(style='thin', color='000000'))cell.border = thin_borderif col >= 1 and col <= 8:  # Apply blue fill to A1-H1cell.fill = PatternFill(start_color="ADD8E6", end_color="ADD8E6", fill_type="solid")  # 浅蓝色cell.font = Font(size=18)# A列第二行开始,单元格的填充底色与B列单元格颜色相同
for row in range(2, sheet.max_row + 1):for col in range(1, 2):  # Apply fill from B column to A-H columnsb_cell = sheet.cell(row=row, column=col + 1)a_cell = sheet.cell(row=row, column=col)a_cell.fill = b_cell.fill.copy()  # Use copy() to avoid unhashable type error# 设置所有行的行高和列宽
for row in range(1, sheet.max_row + 1):sheet.row_dimensions[row].height = 30for col in range(1, sheet.max_column + 1):column_letter = get_column_letter(col)sheet.column_dimensions[column_letter].width = 10  # Set width to a reasonable value for better readability#  在第一行上方插入一个空行,然后合并A1-H1,写入“第二学期”20磅,居中
sheet.insert_rows(1)
sheet.merge_cells('A1:H1')
sheet.cell(row=1, column=1).value = "上海市中小学2024学年度第二学期校历(阿夏20250209)"
sheet.cell(row=1, column=1).alignment = Alignment(horizontal='center', vertical='center')
sheet.cell(row=1, column=1).font = Font(size=18)
sheet.cell(row=1, column=1).border = thin_border
sheet.cell(row=1, column=1).fill = PatternFill(start_color="ADD8E6", end_color="ADD8E6", fill_type="solid")  # 浅蓝色# 保存工作簿
workbook.save(path + fr"\{title}.xlsx")
time.sleep(2)

下一步就是查找不上班的日期

可以看到第10周五天,第10周周日5月27日与第11周的三天上班合并,第19周与第20周(只有1天)合并为6天,一共可以做19周的计划

2.0版本——实际需要的央视(周一开始,双休日、假日空白)

代码展示


'''
模仿制作2025年2月下学期的校历(标注节假日)
星火讯飞、阿夏
202502010
'''
from openpyxl import Workbook
from openpyxl.styles import PatternFill, Border, Side, Alignment, Font
import datetime
import time
from openpyxl.utils import get_column_letter
from openpyxl.worksheet.page import PageMarginspath = r'C:\Users\jg2yXRZ\OneDrive\桌面\20250217校历'
title = '2024学年第二学期校历(阿夏20250209)'
# 起始日期前空几天
m=0# 创建一个新的Excel工作簿
workbook = Workbook()
sheet = workbook.active# 设置页边距(单位为英寸)# 设置页边距(单位为厘米)
left_margin_cm = 1.3
right_margin_cm = 1.3
top_margin_cm = 2
bottom_margin_cm = 2# 将厘米转换为英寸
left_margin_inch = left_margin_cm * 0.393701
right_margin_inch = right_margin_cm * 0.393701
top_margin_inch = top_margin_cm * 0.393701
bottom_margin_inch = bottom_margin_cm * 0.393701# 设置页边距(单位为英寸)
margins = PageMargins(left=left_margin_inch, right=right_margin_inch, top=top_margin_inch, bottom=bottom_margin_inch)# margins = PageMargins(left=3.322, right=3.322, top=5.08, bottom=5.08)
sheet.page_margins = margins# 设置标题行
# title_row = ["周次",  "星期一", "星期二", "星期三", "星期四", "星期五", "星期六","星期日",]
title_row = ["周次",  "一", "二", "三", "四", "五", "六","日",]
sheet.append(title_row)# 设置日期范围
start_date = datetime.date(2025, 2, 17)
end_date = datetime.date(2025, 6, 30)# 生成日期列表并包含标题行和空格行
date_list = [title_row]
for i in range(m):date_list.append([])  # 添加一个空格行current_day = start_datewhile current_day <= end_date:date_list.append([current_day])current_day += datetime.timedelta(days=1)# 计算周数和将日期列表写入Excel
current_week = 1
for i in range(1, len(date_list), 7):# 获取当前周的日期列表week_dates = date_list[i:i+7]# 在A列中添加周次sheet.cell(row=current_week + 1, column=1).value = f"第{current_week}周"cell = sheet.cell(row=current_week + 1, column=1)cell.alignment = Alignment(horizontal='center', vertical='center')# 设置A列单元格边框样式为黑色实线thin_border = Border(left=Side(style='thin', color='000000'), right=Side(style='thin', color='000000'), top=Side(style='thin', color='000000'), bottom=Side(style='thin', color='000000'))cell.border = thin_bordercell.font = Font(size=16)# 在正确的单元格中添加日期for j in range(len(week_dates)):cell = sheet.cell(row=current_week + 1, column=j + 2)# 检查日期是否为当月的第一天,如果是则显示“月/1”,否则显示“月/日”if week_dates[j]:  # Check if the list is not emptyif week_dates[j][0].year == 2025 and week_dates[j][0].month == 2 and week_dates[j][0].day == 17:cell.value = f"{week_dates[j][0].year}/{week_dates[j][0].month}/{week_dates[j][0].day}"elif week_dates[j][0].day == 1:cell.value = f"{week_dates[j][0].month}/{week_dates[j][0].day}"if week_dates[j][0].year == 2025 and week_dates[j][0].month == 5 and week_dates[j][0].day == 1:cell.value = f"{week_dates[j][0].month}/{week_dates[j][0].day}劳动"      else:cell.value = f"{week_dates[j][0].day}"if week_dates[j][0].year == 2025 and week_dates[j][0].month == 4 and week_dates[j][0].day == 4:cell.value = f"{week_dates[j][0].day}清明"elif week_dates[j][0].year == 2025 and week_dates[j][0].month == 5 and week_dates[j][0].day == 31:cell.value = f"{week_dates[j][0].day}端午"cell.alignment = Alignment(horizontal='center', vertical='center')# 根据月份设置单元格底纹颜色month = week_dates[j][0].monthday = week_dates[j][0].dayif month == 2:cell.fill = PatternFill(start_color="FFFFCC", end_color="FFFFCC", fill_type="solid")  # 浅黄色elif month == 3:cell.fill = PatternFill(start_color="FFCCCC", end_color="FFCCCC", fill_type="solid")  # 浅红色elif month == 4:if day !=4 :                # 4月4日清明cell.fill = PatternFill(start_color="CCFFCC", end_color="CCFFCC", fill_type="solid")  # 浅绿色elif month == 5:           if not (day == 1 or day == 2 or day == 3 or day == 4 or day == 5):      cell.fill = PatternFill(start_color="CCCCCC", end_color="CCCCCC", fill_type="solid")  # 浅灰色elif month == 6:if not (day == 1 or day == 2 ):    cell.fill = PatternFill(start_color="FFCC99", end_color="FFCC99", fill_type="solid")  # 浅橘色# 设置单元格边框样式为黑色实线thin_border = Border(left=Side(style='thin', color='000000'), right=Side(style='thin', color='000000'), top=Side(style='thin', color='000000'), bottom=Side(style='thin', color='000000'))cell.border = thin_border# 设置字体大小为18磅if week_dates[j][0].year == 2025 and week_dates[j][0].month == 2 and week_dates[j][0].day == 17:cell.font = Font(size=13)cell.alignment = Alignment(horizontal='center', vertical='center')else:cell.font = Font(size=16)cell.alignment = Alignment(horizontal='center', vertical='center')# 在G2-H2开始的列的单元格都填充为白色for row in range(2, sheet.max_row + 1):for col in range(7, 9):  # Apply white fill to G2-H2 columnscell = sheet.cell(row=row, column=col)cell.fill = PatternFill(start_color="FFFFFF", end_color="FFFFFF", fill_type="solid")  # White color# # 4月27日(周日)换班,4月浅绿色# if week_dates[j][0].year == 2025 and week_dates[j][0].month == 4 and week_dates[j][0].day == 27:#     print("4月27日已找到")#     # 重新填充一个特定单元格为浅绿色specific_cell = 'H11' sheet[specific_cell].fill = PatternFill(start_color="CCFFCC", end_color="CCFFCC", fill_type="solid")# cell.fill = PatternFill(start_color="CCFFCC", end_color="CCFFCC", fill_type="solid")  # 浅绿色# 更新周数并移动到下一周current_week += 1# 确保标题行的所有单元格也居中且有框线,并将第一行标题单元格底色设置为浅蓝色
for col in range(1, len(title_row) + 1):cell = sheet.cell(row=1, column=col)cell.alignment = Alignment(horizontal='center', vertical='center')thin_border = Border(left=Side(style='thin', color='000000'), right=Side(style='thin', color='000000'), top=Side(style='thin', color='000000'), bottom=Side(style='thin', color='000000'))cell.border = thin_borderif col >= 1 and col <= 8:  # Apply blue fill to A1-H1cell.fill = PatternFill(start_color="ADD8E6", end_color="ADD8E6", fill_type="solid")  # 浅蓝色cell.font = Font(size=16)# A列第二行开始,单元格的填充底色与B列单元格颜色相同
# for row in range(2, sheet.max_row + 1):
#     for col in range(1, 2):  # Apply fill from B column to A-H columns
#         b_cell = sheet.cell(row=row, column=col + 1)
#         a_cell = sheet.cell(row=row, column=col)
#         a_cell.fill = b_cell.fill.copy()  # Use copy() to avoid unhashable type error# 设置所有行的行高和列宽
for row in range(1, sheet.max_row + 2):sheet.row_dimensions[row].height = 30for col in range(1, sheet.max_column + 1):column_letter = get_column_letter(col)sheet.column_dimensions[column_letter].width = 11.5 # Set width to a reasonable value for better readability#  在第一行上方插入一个空行,然后合并A1-H1,写入“第二学期”20磅,居中
sheet.insert_rows(1)
sheet.merge_cells('A1:H1')
sheet.cell(row=1, column=1).value = "上海市中小学2024学年度第二学期校历(阿夏20250209)"
sheet.cell(row=1, column=1).alignment = Alignment(horizontal='center', vertical='center')
# 字号,加粗
sheet.cell(row=1, column=1).font = Font(size=18, bold=True)
# 框线
# sheet.cell(row=1, column=1).border = thin_border
# 填充白色
sheet.cell(row=1, column=1).fill = PatternFill(start_color="FFFFFF", end_color="FFFFFF", fill_type="solid") # 保存工作簿
workbook.save(path + fr"\{title}.xlsx")
time.sleep(2)# import pandas as pd
# from fpdf import FPDF# # 读取Excel文件
# excel_file = path + fr"\{title}.xlsx"
# df = pd.read_excel(excel_file)# # 创建PDF对象
# pdf = FPDF()
# pdf.add_page()
# pdf.set_font("Arial", size=12)# # 添加表格数据到PDF
# for i in range(len(df)):
#     line = df.iloc[i].tolist()
#     text = ' | '.join([str(x) for x in line])
#     pdf.cell(200, 10, txt=text, ln=True)# # 保存PDF文件
# pdf_file = path + fr"\{title}.pdf"
# pdf.output(pdf_file)
# print(f"PDF file has been created: {pdf_file}")

在excel里另存为pdf(python  把excel转PDF有问题)

不同浏览器效果

CAJ

谷歌浏览器

360极速浏览器

火狐浏览器

Adobe Acrobat DC

最终效果

发到学校群里

因为图片里面有彩色的底纹,必须用领导的彩色打印机。

所以我打印了二十份,粘在墙上。需要的人自己来拿

相关文章:

【办公类-53-04】20250209Python模仿制作2024学年第二学期校历

背景需求&#xff1a; 马上开学了&#xff0c;又要制作校历&#xff08;删划节假日&#xff09;。之前我都是用网络的图片&#xff0c;然后在PPT里修改。 存在问题&#xff1a; 网络校历是从周日开始的&#xff0c;但日常我们老师做教案&#xff0c;都是默认从周一到周五&…...

11vue3实战-----封装缓存工具

11vue3实战-----封装缓存工具 1.背景2.pinia的持久化思路3.以localStorage为例解决问题4.封装缓存工具 1.背景 在上一章节&#xff0c;实现登录功能时候&#xff0c;当账号密码正确&#xff0c;身份验证成功之后&#xff0c;把用户信息保存起来&#xff0c;是用的pinia。然而p…...

Unity 基础编程

在这个练习中将新建unity脚本&#xff0c;控制player的运动与转动&#xff0c;实现用代码检测碰撞与删除物体。 该练习将应用附件中的项目文件&#xff0c;该文件与Unity快速练习的文件是同一个项目文件。 一、构建Player运动脚本 该部分将构建一个在场景中由玩家控制游戏物…...

Spring Boot接入Deep Seek的API

1&#xff0c;首先进入deepseek的官网&#xff1a;DeepSeek | 深度求索&#xff0c;单击右上角的API开放平台。 2&#xff0c;单击API keys&#xff0c;创建一个API&#xff0c;创建完成务必复制&#xff01;&#xff01;不然关掉之后会看不看api key&#xff01;&#xff01;&…...

介绍下SpringBoot常用的依赖项

Spring Boot 是一个用于快速开发 Spring 应用程序的框架&#xff0c;它通过自动配置和依赖管理简化了开发过程。以下是一些 Spring Boot 项目中常用的依赖项&#xff1a; 1. Spring Boot Starter Web 作用: 用于构建 Web 应用程序&#xff0c;包括 RESTful 服务。依赖项: spr…...

解决 keep-alive 缓存组件中定时器干扰问题

当使用 keep-alive 缓存组件时&#xff0c;组件中的定时器可能会在组件被缓存后继续运行&#xff0c;从而干扰其他组件的逻辑。为了避免这种情况&#xff0c;可以通过以下方法解决&#xff1a; 1. 在组件的 deactivated 钩子中清理定时器 keep-alive 为缓存的组件提供了 acti…...

PostgreSQL插件-pg_stat_statements-安装和使用

文章目录 插件介绍插件安装1.修改配置文件postgresql.conf2.插件相关参数参数默认值参数说明特别注意pg_stat_statements.max参数设置太小日志会有警告 插件使用1.创建插件2.使用插件3.重置数据4.删除插件 可能会出现的问题1.没有编译安装插件2.没有配置shared_preload_librari…...

flutter安卓打包签名

flutter安卓打包签名 1.创建签名文件 keytool -genkeypair -v -keystore my-release-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias my-key-aliaskeytool 是一个用于管理密钥和证书的命令行工具&#xff0c;通常与 Java 开发工具包 (JDK) 一起使用。my-release-…...

从Word里面用VBA调用NVIDIA的免费DeepSeekR1

看上去能用而已。 选中的文字作为输入&#xff0c;运行对应的宏即可&#xff1b;会先MSGBOX提示一下&#xff0c;然后相关内容追加到word文档中。 需要自己注册生成好用的apikey Option ExplicitSub DeepSeek()Dim selectedText As StringDim apiKey As StringDim response A…...

JavaScript 中的防抖和节流,它们的区别是什么,以及如何实现?

在前端开发中&#xff0c;防抖&#xff08;Debounce&#xff09;和节流&#xff08;Throttle&#xff09;是两种常用的优化高频率事件处理的技术。 它们能够有效减少事件处理函数的执行次数&#xff0c;从而提升页面性能和用户体验。 下面将详细解释这两种技术的概念、区别、…...

【Kubernetes的SpringCloud最佳实践】Spring Cloud netflix 能否被K8s资源完全替代?

在部署Spring Cloud微服务到Kubernetes&#xff08;K8s&#xff09;时&#xff0c; Spring Cloud netflix 是否需要完全替代&#xff1f;或者可以部分替代&#xff0c;结合使用&#xff1f; 例如&#xff0c;服务发现和负载均衡可以交给K8s处理&#xff0c; 但某些功能如API网关…...

MATLAB中extract 函数用法

目录 语法 说明 示例 从地址中提取邮政编码 提取在数值位置处的字符 extract函数的功能是从字符串中提取子字符串。 语法 newStr extract(str,pat) newStr extract(str,pos) 说明 newStr extract(str,pat) 返回 str 中与 pat 指定的模式匹配的任何子字符串。 如果 s…...

DeepSeek-V3:开源多模态大模型的突破与未来

目录 引言 一、DeepSeek-V3 的概述 1.1 什么是 DeepSeek-V3&#xff1f; 1.2 DeepSeek-V3 的定位 二、DeepSeek-V3 的核心特性 2.1 多模态能力 2.2 开源与可扩展性 2.3 高性能与高效训练 2.4 多语言支持 2.5 安全与伦理 三、DeepSeek-V3 的技术架构 3.1 模型架构 3…...

C语言学习笔记:子函数的调用实现各个位的累加和

在C语言程序学习之初&#xff0c;我们都会学习如何打印 hello world&#xff0c;在学习时我们知道了int main&#xff08;&#xff09;是主函数&#xff0c;程序从main函数开始执行&#xff0c;这是流程控制的一部分内容。在主函数中我们想要实现一些功能&#xff0c;比如求各个…...

docker安装ollama显示超时或失败

正常安装 1、拉取ollma镜像 docker pull ollama/ollama or docker pull docker.1panel.live/ollama/ollama2、运行ollma镜像 docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama3、运行指定大模型:模型仓库参考网站: library (ollama.com…...

grafana面板配置opentsdb

新增面板&#xff1a; 这里add-panel: 如果不是想新增面板而是想新增一行条目&#xff0c;则点击convert to row: 在新增的面板这里可以看到选择数据源 Aggregator&#xff1a;聚合条件&#xff0c;区分下第一行和第二行的aggregator&#xff0c;第一个是对指标值的聚合&…...

iOS AES/CBC/CTR加解密以及AES-CMAC

感觉iOS自带的CryptoKit不好用&#xff0c;有个第三方库CryptoSwift还不错&#xff0c;好巧不巧&#xff0c;清理过Xcode缓存后死活下载不下来&#xff0c;当然也可以自己编译个Framework&#xff0c;但是偏偏不想用第三方库了&#xff0c;于是研究了一下&#xff0c;自带的Com…...

使用Jenkins实现鸿蒙HAR应用的自动化构建打包

使用Jenkins实现鸿蒙HAR应用的自动化构建打包 在软件开发领域&#xff0c;自动化构建是提高开发效率和确保代码质量的重要手段。特别是在鸿蒙&#xff08;OpenHarmony&#xff09;应用开发中&#xff0c;自动化构建更是不可或缺。本文将详细介绍如何使用Jenkins命令行工具实现…...

2025年02月10日Github流行趋势

项目名称&#xff1a;dify 项目地址url&#xff1a;https://github.com/langgenius/dify项目语言&#xff1a;TypeScript历史star数&#xff1a;64707今日star数&#xff1a;376项目维护者&#xff1a;takatost, crazywoola, laipz8200, iamjoel, JohnJyong项目简介&#xff1a…...

Ansible简单介绍及用法

一、简介 Ansible是一个简单的自动化运维管理工具&#xff0c;基于Python语言实现&#xff0c;由Paramiko和PyYAML两个关键模块构建&#xff0c;可用于自动化部署应用、配置、编排task(持续交付、无宕机更新等)。主版本大概每2个月发布一次。 Ansible与Saltstack最大的区别是…...

渗透利器工具:Burp Suite 联动 XRAY 图形化工具.(主动扫描+被动扫描)

Burp Suite 联动 XRAY 图形化工具.&#xff08;主动扫描被动扫描&#xff09; Burp Suite 和 Xray 联合使用&#xff0c;能够将 Burp 的强大流量拦截与修改功能&#xff0c;与 Xray 的高效漏洞检测能力相结合&#xff0c;实现更全面、高效的网络安全测试&#xff0c;同时提升漏…...

HTML-day1(学习自用)

目录 一、HTML介绍 二、常用的标签 1、各级标题&#xff08;h1-h6&#xff09; 2、段落标签&#xff08;p&#xff09; 3、文本容器&#xff08;span&#xff09; 4、图片标签&#xff08;img&#xff09; 5、超链接标签&#xff08;a&#xff09; 6、表格&#xff08;t…...

Vue07

一、Vuex 概述 目标&#xff1a;明确Vuex是什么&#xff0c;应用场景以及优势 1.是什么 Vuex 是一个 Vue 的 状态管理工具&#xff0c;状态就是数据。 大白话&#xff1a;Vuex 是一个插件&#xff0c;可以管理 Vue 通用的数据 (多组件共享的数据)。例如&#xff1a;购物车数…...

Godot开发框架探索#2

前言 距离上次发文又又又隔了很长一段时间。主要原因还是因为思绪在徘徊&#xff0c;最近纠结的点有以下几个&#xff1a;1.渴求一个稳定的Godot开发框架&#xff1b;2.要不要使用更轻量的开发框架&#xff0c;或者直接写引擎&#xff1b; 3.对自己想做的游戏品类拿不定主意。…...

deepseek实现私有知识库

前言 之前写了如何本地部署deepseek&#xff0c;已经可以私有化问答了&#xff0c;本地搭建deepseek实操&#xff08;ollama搭建&#xff0c;docker管理&#xff0c;open-webui使用&#xff09; 其中我觉得最厉害的还是这个模型蒸馏&#xff0c;使我们可以用很低的代价使用大模…...

2.10学习总结

Dijkstra算法求取最短路径 注&#xff1a;迪杰斯特拉算法并不能直接生成最短路径&#xff0c;但是算法将最短路径信息保存在dist数组和path数组中。 dist数组中保存的是起始点到数组下标对应顶点的路径长度&#xff08;累加的结果&#xff09;path数组中保存的是对应path数组…...

【探索未来科技】2025年国际学术会议前瞻

【探索未来科技】2025年国际学术会议前瞻 【探索未来科技】2025年国际学术会议前瞻 文章目录 【探索未来科技】2025年国际学术会议前瞻前言1. 第四届电子信息工程、大数据与计算机技术国际学术会议&#xff08; EIBDCT 2025&#xff09;代码示例&#xff1a;机器学习中的线性回…...

pytest.fixture

pytest.fixture 是 pytest 测试框架中的一个非常强大的功能,它允许你在测试函数运行前后执行一些设置或清理代码。以下是关于 pytest.fixture 的详细介绍: 一、定义与用途 pytest.fixture 是一个装饰器,用于标记一个函数为 fixture。Fixture 函数中的代码可以在测试函数运…...

大模型基本原理(四)——如何武装ChatGPT

传统的LLM存在几个短板&#xff1a;编造事实、计算不准确、数据过时等&#xff0c;为了应对这几个问题&#xff0c;可以借助一些外部工具或数据把AI武装起来。 实现这一思路的框架包括RAG、PAL、ReAct。 1、RAG&#xff08;检索增强生成&#xff09; LLM生成的内容会受到训练…...

开发完的小程序如何分包

好几次了&#xff0c;终于想起来写个笔记记一下 我最开始并不会给小程序分包&#xff0c;然后我就各种搜&#xff0c;发现讲的基本上都是开发之前的小程序分包&#xff0c;可是我都开发完要发布了&#xff0c;提示我说主包太大需要分包&#xff0c;所以我就不会了。。。 好了…...