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')