寻找资源网-让天下没有难找的资源!
寻找资源网-让天下没有难找的资源!

【Python自动化案例】01—基于Excel数据自动生成员工工资调整通知python与Excel联合使用自动化生成工资调整通知

【Python自动化案例】01—基于Excel数据自动生成员工工资调整通知python与Excel联合使用自动化生成工资调整通知
此内容为付费资源,请付费后查看
3
限时特惠
48
立即购买
您当前未登录!建议登陆后购买,可保存购买订单
publicsmell@163.com
1919588043
QQ1919588043
众嗅博客
编程语言Python
代码
付费资源

作品名称

基于Excel数据自动生成员工工资调整通知

用到的库

pandas、docx、datetime、os

作品简介

该实例用于读取Excel文件中的员工姓名和实发工资信息,并根据这些信息为每位员工生成一个个性化的Word文档通知。每个通知包含一个居中的标题、内容段落(从第二行开始缩进),以及右下角的日期。

图片[1]-【Python自动化案例】01—基于Excel数据自动生成员工工资调整通知

实现过程

一、导入必要的库

import pandas as pd
from docx import Document
from docx.shared import Pt, Inches
from datetime import datetime
import os

二、确保输出目录存在

output_dir = "./output"
df = pd.read_excel(file_path)

四、创建Word文档模板函数(create_word_document)

添加标题:创建一个新的段落,设置为居中对齐,添加标题文本“关于工资调整通知”,并设置为加粗和14磅字体。
添加内容并设置缩进:定义一个包含多个段落内容的列表paragraphs,遍历这个列表,对于索引大于0的段落(即从第二个段落开始)应用首行缩进。
添加日期:创建一个新的段落,设置为右对齐,并添加当前日期,格式为YYYY年MM月DD日。
保存文档:使用清理后的名字或哈希值作为文件名的一部分,以避免文件系统级别的编码问题,保存生成的Word文档到指定的输出目录。

def create_word_document(name, salary):
    document = Document()
    # 添加标题并居中
    title = document.add_paragraph()
    title.alignment = 1  # 居中对齐
    run = title.add_run("关于工资调整通知")
    run.bold = True
    run.font.size = Pt(14)
    # 添加内容并设置缩进
    paragraphs = [
        f"尊敬的 {name}:",
        f"由于公司业绩增长不错,您的工资将增加30%,调整后的实发工资为:{salary * 1.3:.2f}元。",
        "并且在2025年实现全员平均20薪。",
        "在这感谢您对公司发展的贡献!"
    ]
    for i, text in enumerate(paragraphs):
        paragraph = document.add_paragraph(text)
        if i > 0:  # 只对第二行及以后的段落进行缩进
            paragraph_format = paragraph.paragraph_format
            paragraph_format.first_line_indent = Inches(0.3)  # 设置首行缩进两个汉字    # 添加日期
    date_paragraph = document.add_paragraph()
    date_paragraph.alignment = 2  # 右对齐
    date_paragraph.add_run(datetime.today().strftime('%Y年%m月%d日'))
    # 使用唯一标识符代替名字生成文件名,避免编码问题
    sanitized_name = ''.join(c for c in name if c.isalnum() or c in ('_', '-')).strip() or str(hash(name))
    document.save(os.path.join(output_dir, f"{sanitized_name}_工资调整通知.docx"))

五、遍历DataFrame,为每个人生成一个Word文档

遍历DataFrame中的每一行,提取姓名和实发工资字段。
调用create_word_document函数为每个员工生成一个Word文档。
使用try-except块捕获任何可能发生的异常,并打印错误信息,以便于调试。

for index, row in df.iterrows():
    name = row['姓名']
    salary = row['实发工资']
    try:
        create_word_document(name, salary)
    except Exception as e:
        print(f"Failed to process {name}: {e}")

print("所有通知已生成完毕。")

六、结语

以上就是本次分享的全部内容,如果你有任何疑问或想要分享你的自动化办公经验,我们的评论区永远为你敞开。你的每一个点赞和转发,都是对我们最大的支持和鼓励!
获取文中的完整代码,请关注公众号和小程序“众嗅博客”,并回复关键字“Python工资调整”,即可获取。
如您有自动化需求,请在评论区发出来吧!

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
相关推荐
评论 抢沙发

请登录后发表评论

    暂无评论内容