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

Python实例题:Python自动工资条

目录

Python实例题

题目

python-automatic-payroll-slipPython 自动生成工资条脚本

代码解释

加载文件:

获取表头:

写入表头:

生成工资条:

保存文件:

运行思路

注意事项

Python实例题

题目

Python自动工资条

python-automatic-payroll-slipPython 自动生成工资条脚本

import openpyxl
from openpyxl.utils import get_column_letterdef generate_payroll_slips(input_file, output_file):# 加载输入的 Excel 文件wb_input = openpyxl.load_workbook(input_file)sheet_input = wb_input.active# 创建新的工作簿用于存储工资条wb_output = openpyxl.Workbook()sheet_output = wb_output.active# 获取表头header = [cell.value for cell in sheet_input[1]]# 写入表头到输出文件for col_index, value in enumerate(header, start=1):col_letter = get_column_letter(col_index)sheet_output[f'{col_letter}1'] = valuerow_num_output = 2# 遍历输入文件中的每一行数据(从第二行开始,跳过表头)for row in sheet_input.iter_rows(min_row=2, values_only=True):# 写入表头分隔行for col_index, value in enumerate(header, start=1):col_letter = get_column_letter(col_index)sheet_output[f'{col_letter}{row_num_output}'] = valuerow_num_output += 1# 写入员工工资数据行for col_index, value in enumerate(row, start=1):col_letter = get_column_letter(col_index)sheet_output[f'{col_letter}{row_num_output}'] = valuerow_num_output += 1# 写入空行分隔不同员工的工资条row_num_output += 1# 保存输出的 Excel 文件wb_output.save(output_file)print(f"工资条已成功生成并保存到 {output_file}")if __name__ == "__main__":input_file = 'salary_info.xlsx'  # 输入的包含员工工资信息的 Excel 文件output_file = 'payroll_slips.xlsx'  # 输出的包含工资条的 Excel 文件generate_payroll_slips(input_file, output_file)

代码解释

  • 加载文件

    • 运用openpyxl.load_workbook函数加载包含员工工资信息的输入 Excel 文件。
    • 创建一个新的工作簿用于存储生成的工资条。
  • 获取表头

    • 读取输入文件的第一行作为表头。
  • 写入表头

    • 把表头写入到输出文件的第一行。

  • 生成工资条

    • 遍历输入文件中除表头外的每一行数据。
    • 为每个员工的工资条先写入表头分隔行。
    • 接着写入该员工的工资数据行。
    • 最后写入一个空行,用于分隔不同员工的工资条。
  • 保存文件

    • 使用wb_output.save方法将生成的工资条保存到指定的输出文件中。

运行思路

  • 安装依赖库:确保已经安装了openpyxl库,若未安装,可使用以下命令进行安装:
pip install openpyxl
  • 准备输入文件:创建一个名为salary_info.xlsx的 Excel 文件,在第一行填写表头(如姓名基本工资奖金扣除项实发工资等),从第二行开始逐行填写每个员工的工资信息。
  • 运行脚本:将上述代码保存为automatic_payroll_slip.py文件,在终端中运行:
python automatic_payroll_slip.py

  • 查看结果:运行脚本后,会在当前目录下生成一个名为payroll_slips.xlsx的文件,打开该文件即可查看生成的工资条。

注意事项

  • 要保证输入文件salary_info.xlsx存在,并且第一行是表头。
  • 若输入文件的路径或文件名需要修改,可在代码中修改input_file变量的值。
  • 生成的工资条文件payroll_slips.xlsx会覆盖同名文件,请谨慎操作。
http://www.lryc.cn/news/2378350.html

相关文章:

  • Function Calling万字实战指南:打造高智能数据分析Agent平台
  • spark MySQL数据库配置
  • python四则运算计算器
  • 线对板连接器的兼容性问题:为何老旧设计难以满足现代需求?
  • AI517 AI本地部署 docker微调(失败)
  • VR和眼动控制集群机器人的方法
  • python训练营打卡第26天
  • TiDB 中新 Hash Join 的设计与性能优化
  • 1.共享内存(python共享内存实际案例,传输opencv frame)
  • 网页常见水印实现方式
  • oracle主备切换参考
  • Java大师成长计划之第25天:Spring生态与微服务架构之容错与断路器模式
  • 【ARM】MDK如何将变量存储到指定内存地址
  • Unity3D仿星露谷物语开发44之收集农作物
  • langchain—chatchat
  • 经典算法 求C(N, K) % mod,保证mod是质数
  • 【LeetCode 热题 100】二叉树的最大深度 / 翻转二叉树 / 二叉树的直径 / 验证二叉搜索树
  • 关于软件测试开发的一些有趣的知识
  • uni-app 开发HarmonyOS的鸿蒙影视项目分享:从实战案例到开源后台
  • 售前工作.工作流程和工具
  • GPU与NPU异构计算任务划分算法研究:基于强化学习的Transformer负载均衡实践
  • 学习ai课程大纲
  • 基于CentOS7制作OpenSSL 1.1的RPM包
  • 数据分析_Python
  • TCP/UDP协议原理和区别 笔记
  • 深入浅出:C++数据处理类与计算机网络的巧妙类比
  • 【滑动窗口】LeetCode 209题解 | 长度最小的子数组
  • 在RK3588上使用NCNN和Vulkan加速ResNet50推理全流程
  • 【ant design】ant-design-vue 4.0实现主题色切换
  • Android 图片自动拉伸不变形,点九