在excel中做好活动进度矩阵,直接通过代码一键生成工作日报,可以md格式也可以word格式

发布于:2023-10-25 ⋅ 阅读:(91) ⋅ 点赞:(0)
import pandas as pd
from docx import Document
from docx.shared import Pt
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT

# 读取Excel文件
excel_file = './工作日报.xlsx'
df = pd.read_excel(excel_file)

# 创建Word文档
doc = Document()

# 添加标题
doc.add_heading('工作日报', level=1)

# 添加日期、部门和汇报人信息
doc.add_paragraph("日期: [日期]")
doc.add_paragraph("部门: [部门名称]")
doc.add_paragraph("汇报人: [您的姓名]")

# 替换空单元格为自定义占位符
df = df.fillna('')

# 创建今日计划和下期计划的两个空列表
today_plan = []
next_plan = []

# 循环处理每一行数据
for index, row in df.iterrows():
    project_name = row['项目名称']
    follow_up = row['是否跟进']
    progress = row['进展情况']
    progress_details = row['进展说明']
    issues = row['问题和障碍']

    # 决定将工作项放在今日计划还是下期计划
    if follow_up.lower() == '是':
        plan_section = "今日计划"
    else:
        if progress.lower() == '进行中':
            plan_section = "下期计划 (下期跟进工作: {})".format(project_name)
        else:
            plan_section = "下期计划"

    # 根据计划分类将工作项添加到相应的列表
    if plan_section == "今日计划":
        today_plan.append(f"{index + 1}. {project_name}")
    else:
        next_plan.append(f"{index + 1}. {project_name}")

    # 添加每一项工作到文档并设置格式
    p = doc.add_paragraph(f"{index + 1}. {project_name} ({plan_section})")
    p.alignment = WD_PARAGRAPH_ALIGNMENT.LEFT  # 设置左对齐

    # 使用字体样式设置文本格式
    run = p.runs[0]
    run.font.size = Pt(12)
    run.bold = True  # 加粗文本
    run.add_text(f"\n工作内容: {project_name}\n是否跟进: {follow_up}\n进展情况: {progress}\n进展说明: {progress_details}\n问题和障碍: {issues}\n")

# 在今日计划和下期计划之间添加分隔行
doc.add_paragraph('-----------------------------')

# 添加今日计划
doc.add_heading('今日计划', level=2)
for item in today_plan:
    doc.add_paragraph(item)

# 添加下期计划
doc.add_heading('下期计划', level=2)
for item in next_plan:
    doc.add_paragraph(item)

# 在此添加其他事项和附加信息等部分

# 保存生成的Word文档
doc.save(f'./每日日报/{today}工作日报.docx')


网站公告

今日签到

点亮在社区的每一天
去签到