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

手袋东莞网站建设济宁网站建设 中企动力临沂

手袋东莞网站建设,济宁网站建设 中企动力临沂,歌曲做网站背景音乐 侵权,开发工具在哪里背景需求 本学期的课题有4个大课题,3个小课题通过,需要做阶段资料。 一、初步设计 我很早以前就做好了Python代码(只有上学期),批量制作每个课题的阶段资料模版。因为小课题的编号没有出来,就一直没有发给…

背景需求

本学期的课题有4个大课题,3个小课题通过,需要做阶段资料。

一、初步设计

我很早以前就做好了Python代码(只有上学期),批量制作每个课题的阶段资料模版。因为小课题的编号没有出来,就一直没有发给课题负责人。

# 一、导入相关模块,设定excel所在文件夹和生成word保存的文件夹
from docxtpl import DocxTemplate
import pandas as pd
import osprint('----1、第一次新WORD制作--------')
# path = r"D:\test\02办公类\91周计划4份_20240901中2班\04 周计划7天"
path= r'C:\Users\jg2yXRZ\OneDrive\桌面\2024111上下学期课题模版批量\01模版'
print(path)folder_path=path+r'\01上学期(docx)' 
# 替换为你的文件夹路径
docx_files = []for root, dirs, files in os.walk(folder_path):for file in files:if file.endswith('.docx'):file_path = os.path.join(root, file)docx_files.append((file, file_path))for file_name, file_path in docx_files:print(f"docx文件名 {file_name}")print(f"docx路径名: {file_path}")import xlrd  # 假设 path 是之前已经定义好的文件路径变量的一部分  file_paths = path + r'\总课题信息统计表.xlsx'  workbook = xlrd.open_workbook(file_paths)  sheet = workbook.sheet_by_index(0)  # 获取第一张工作表    # 遍历每一行,从第二行开始(索引为1,因为索引从0开始,但Excel从1开始计数行)  for row_idx in range(1,sheet.nrows):  # sheet.nrows 返回工作表中的行数  # 读取当前行的E到K列(列索引从0开始,但Excel列从1开始计数,所以E=4, ..., K=10)  row_data = sheet.row_values(row_idx, start_colx=4, end_colx=11)  # print(row_data)# 删除 row_data 中的空元素(None 或空字符串)  days = [cell for cell in row_data if cell is not None and cell != '']  # 统计每行非空元素的数量  (天数)item = len(days)  print(f'第{row_idx}行,本周天数是{item}天')    # 如果是5天就用5天模版,如果是7天,就用7天模版# doc_path=path+r'\01上学期(docx)'tpl = DocxTemplate(folder_path+fr'\{file_name}')WeeklyPlan = pd.read_excel(path+r'\总课题信息统计表.xlsx')# 没有str.rstrip()是数字格式# str.rstrip()都是文字格式num = WeeklyPlan["num"]title = WeeklyPlan["title"].str.rstrip()name =WeeklyPlan["name"].str.rstrip()     member =WeeklyPlan["member"].str.rstrip()     item=WeeklyPlan["item"].str.rstrip() number =WeeklyPlan["number"].str.rstrip() group =WeeklyPlan["group"].str.rstrip()   master = WeeklyPlan["master"].str.rstrip() year1 = WeeklyPlan["year1"]month1= WeeklyPlan["month1"]year2= WeeklyPlan["year2"]month2= WeeklyPlan["month2"]first = WeeklyPlan["first"]second = WeeklyPlan["second"]third = WeeklyPlan["third"]d11 = WeeklyPlan["d11"]d12 = WeeklyPlan["d12"]d21 = WeeklyPlan["d21"]d22 = WeeklyPlan["d22"]d31 = WeeklyPlan["d31"]d32 = WeeklyPlan["d32"]start = WeeklyPlan["start"]end = WeeklyPlan["end"]# 遍历excel行,逐个生成# num = WeeklyPlan.shape[0]# print(num)for i in range(row_idx-1,row_idx):context = {"num": num[i],"title": title[i],"name": name[i],"member": member[i],"item": item[i],"number": number[i],"group": group[i],"master": master[i],"year1": year1[i],"month1": month1[i],"year2": year2[i],"month2": month2[i],"first": first[i],"second": second[i],"third": third[i], "d11": d11[i], "d12": d12[i], "d21": d21[i],"d22": d22[i],"d31": d31[i],  "d32": d32[i],          "num": num[i],"start": start[i],"end": end[i],}        tpl.render(context)  # 假设 weekshu[i] 是类似于 '4、5' 或 '7' 这样的字符串# 姓名+课题阶段资料\01上学期\# name[i]_item[i]阶段资料\01上学期if len(item[i])==4: # 无文件夹                   docx_path=path+fr'\10批量打包\{num[i]:02}{name[i]}_{item[i]}课题阶段资料\01上学期'# 有文件夹(只要生成前两个)空文件夹,去掉最后的.docxdocx_path=path+fr'\10批量打包\{num[i]:02}{name[i]}_{item[i]}课题阶段资料\01上学期\{name[i]} {file_name[:-5]}'os.makedirs(docx_path,exist_ok=True)else:# 无文件夹 docx_path=path+fr'\10批量打包\{num[i]:02}{name[i]}_{item[i]}阶段资料\01上学期'# 有文件夹(只要生成前两个)空文件夹,去掉最后的.docxdocx_path=path+fr'\10批量打包\{num[i]:02}{name[i]}_{item[i]}阶段资料\01上学期\{name[i]} {file_name[:-5]}'os.makedirs(docx_path,exist_ok=True)tpl.save(docx_path+fr"\{name[i]} {file_name}")

以上代码只做了上学期的模版,包含两种样式(在文件夹里有DOCX,和所有DOCX在一起)

二、代码改良

一直拖到1月份,才知道小课题没有编号了。当时上半学期资料已经提交了,我在批注时发现负责人们使用的模版不一样

由于没有序号标注,文件首字不同导致文本排序没有按照目录,一部分批注时间就用来提示基础信息的填写。

每个人的阶段内容相同但是排序不同,所以我还是想把每一份文件DOCX的序号统一。

所以我再次修改了一下代码,把上下学期的模版都做好了。

课题成员基本信息

上半学期日期

下半学期日期

代码展示


'''
根据课题组成员名单制作课题阶段资料(上下学期)的个人模版(包含个人的课题信息)
星火讯飞、阿夏
2025年1月3日
'''# 一、导入相关模块,设定excel所在文件夹和生成word保存的文件夹
from docxtpl import DocxTemplate
import pandas as pd
import os
import xlrdprint('----1、第一次新WORD制作--------')
# path = r"D:\test\02办公类\91周计划4份_20240901中2班\04 周计划7天"
path = r'C:\Users\jg2yXRZ\OneDrive\桌面\2024111上下学期课题模版批量\01模版'
print(path)day=['上','下']for x in day:folder_path = path + fr'\01{x}学期(docx)'# 替换为你的文件夹路径docx_files = []for root, dirs, files in os.walk(folder_path):for file in files:if file.endswith('.docx'):file_path = os.path.join(root, file)docx_files.append((file, file_path))for file_name, file_path in docx_files:print(f"docx文件名 {file_name}")print(f"docx路径名: {file_path}")# 假设 path 是之前已经定义好的文件路径变量的一部分file_paths = path + r'\总课题信息统计表.xlsx'workbook = xlrd.open_workbook(file_paths)sheet = workbook.sheet_by_index(0)  # 获取第一张工作表# 遍历每一行,从第二行开始(索引为1,因为索引从0开始,但Excel从1开始计数行)for row_idx in range(1, sheet.nrows):  # sheet.nrows 返回工作表中的行数# 读取当前行的E到K列(列索引从0开始,但Excel列从1开始计数,所以E=4, ..., K=10)row_data = sheet.row_values(row_idx, start_colx=4, end_colx=11)# print(row_data)# 删除 row_data 中的空元素(None 或空字符串)days = [cell for cell in row_data if cell is not None and cell != '']# 统计每行非空元素的数量 (天数)item = len(days)print(f'第{row_idx}行,本周天数是{item}天')# 如果是5天就用5天模版,如果是7天,就用7天模版tpl = DocxTemplate(folder_path + fr'\{file_name}')WeeklyPlan = pd.read_excel(path + r'\总课题信息统计表.xlsx')num = WeeklyPlan["num"]title = WeeklyPlan["title"].str.rstrip()name = WeeklyPlan["name"].str.rstrip()member = WeeklyPlan["member"].str.rstrip()item = WeeklyPlan["item"].str.rstrip()number = WeeklyPlan["number"].str.rstrip()group = WeeklyPlan["group"].str.rstrip()master = WeeklyPlan["master"].str.rstrip()year1 = WeeklyPlan["year1"]month1 = WeeklyPlan["month1"]year2 = WeeklyPlan["year2"]month2 = WeeklyPlan["month2"]first = WeeklyPlan["first"]second = WeeklyPlan["second"]third = WeeklyPlan["third"]month3 = WeeklyPlan["month3"]month4 = WeeklyPlan["month4"]forth = WeeklyPlan["forth"]fifth = WeeklyPlan["fifth"]sixth = WeeklyPlan["sixth"]d11 = WeeklyPlan["d11"]d12 = WeeklyPlan["d12"]d21 = WeeklyPlan["d21"]d22 = WeeklyPlan["d22"]d31 = WeeklyPlan["d31"]d32 = WeeklyPlan["d32"]d41 = WeeklyPlan["d41"]d42 = WeeklyPlan["d42"]d51 = WeeklyPlan["d51"]d52 = WeeklyPlan["d52"]d61 = WeeklyPlan["d61"]d62 = WeeklyPlan["d62"]start = WeeklyPlan["start"]end = WeeklyPlan["end"]# 遍历excel行,逐个生成for i in range(row_idx - 1, row_idx):context = {"num": num[i],"title": title[i],"name": name[i],"member": member[i],"item": item[i],"number": number[i],"group": group[i],"master": master[i],"year1": year1[i],"month1": month1[i],"year2": year2[i],"month2": month2[i],"first": first[i],"second": second[i],"third": third[i],"d11": d11[i],"d12": d12[i],"d21": d21[i],"d22": d22[i],"d31": d31[i],"d32": d32[i],"start": start[i],"end": end[i],"month3": month3[i],"month4": month4[i],"forth": forth[i],"fifth": fifth[i],"sixth": sixth[i],"d41": d41[i],"d42": d42[i],"d51": d51[i],"d52": d52[i],"d61": d61[i],"d62": d62[i],}tpl.render(context)if len(item[i])==4:  # 区级一般#(构建3级文件夹) docx_path=path+fr'\10批量打包\{num[i]:02}{name[i]}_{item[i]}_课题阶段资料\01{x}学期\{name[i]} {file_name[:-5]}'print(docx_path)os.makedirs(docx_path,exist_ok=True) tpl.save(docx_path+fr"\{name[i]} {file_name}")# 存在二级文件夹下,都是DOCX(便于打印)docx_path1=path+fr'\10批量打包\{num[i]:02}{name[i]}_{item[i]}_课题阶段资料\01{x}学期'tpl.save(docx_path1+fr"\{name[i]} {file_name}")else:# 区级小课题 #    #(构建3级文件夹)                    docx_path=path+fr'\10批量打包\{num[i]:02}{name[i]}_{item[i]}_课题阶段资料\01{x}学期\{name[i]} {file_name[:-5]}'print(docx_path)# 小课题的上学期没有“开题报告”,    if file_name=='03开题报告(例举).docx':pass# 小课题的下学期没有“中期报告”,  elif file_name=='01中期报告(举例).docx':passelse:os.makedirs(docx_path,exist_ok=True)                        tpl.save(docx_path+fr"\{name[i]} {file_name}")#  # 存在二级文件夹下,都是DOCX(便于打印)docx_path1=path+fr'\10批量打包\{num[i]:02}{name[i]}_{item[i]}_课题阶段资料\01{x}学期' tpl.save(docx_path1+fr"\{name[i]} {file_name}")

运行过程

此代码对区级一般课题小课题进行分类,如果是小课题就不用复制“开题报告”和“中期报告”(跳过)

区级一般课题

区级小课题

初步实现了批量模版,为每位老师制作属于自己的课题档案袋(基础信息 课题名称、编号、负责人名字、级别、时间、参与者都有了)

三、后续思考

但是在群发之前还有很多的问题:

1、上学期的01是申请书,如何把下载的申请书自动读入所属文件夹并自动改名

目前这里只有空模版,申请书是之前写的。可以在科研网站上下载下来。尝试复制进去。

2、上学期02是立项书,如何把下载证书图片复制到DOCX内

3、如何进一步调整给每个表格样式(行最小值、跨行)

目前表格本身还是有很多的样式错误,如跨页断行,第一页留出很多空白;需要标题永远再首行

4、如何对标题、表格、书写内容分别确定独立的“样式”

(感谢大头先生的WPS课程,让我发现如何调整这些样式参数)

感慨:

在群发共享之前,还有很多的测试之路啊。

http://www.yayakq.cn/news/102478/

相关文章:

  • 网站一直不被收录公司网站代码
  • 泰州做企业网站的哪里好四川建设厅证网站是
  • 做那种的视频网站网络舆情风险
  • 福州网站建设出格东莞阿里巴巴代运营公司
  • 网站建立数据库连接时出错网站建设实训主要收获及体会
  • 网站制作全过程瑞丽住建局网站
  • 网站开发的基本流程文库站酷app
  • 茂名网站建设解决方案wordpress it企业模板
  • 河北省邢台市建设工程网站如何自己建设一个网站
  • 合作社网站模板家装设计师工作内容
  • 前端做微网站常州网约车平台
  • 网站需求方案网站怎么销售
  • 网站建站东莞北京设计院排名100强
  • 网站建设蘑菇街网络舆情监测员
  • 响应式网站开发方案网页聊天工具
  • 游戏类网站欣赏企业网站的网址通常包含
  • 邯郸网站建设xy0310媒体发稿平台
  • 做网站横幅的软件临沂市建设局兰山区网站
  • 关于地产设计网站网络营销方法和手段
  • 国际网站群建设方案wordpress主题lovephoto
  • 郑州网站制作的公司WordPress页面批量生成
  • 高端做网站wordpress手动数据库优化
  • 嘉鱼网站建设公司混沌鸿蒙网站建设
  • 襄阳网站定制抖音代运营公司介绍
  • 河北康城建设集团网站北京网站建设 标准型 新翼
  • 咖啡网站设计模板渭南免费做网站
  • 科技企业网站wordpress 标题图片
  • 怎样做国外网站推广厦门网站注册与网页设计公司
  • 门户网站兴化建设局无锡网站程序
  • 个人网站备案 内容一个域名下多个网站