目录
Python实例题
题目
python-automatic-payroll-slipPython 自动生成工资条脚本
代码解释
加载文件:
获取表头:
写入表头:
生成工资条:
保存文件:
运行思路
注意事项
Python实例题
题目
Python自动工资条
python-automatic-payroll-slipPython 自动生成工资条脚本
import openpyxl
from openpyxl.utils import get_column_letter
def 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'] = value
row_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}'] = value
row_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}'] = value
row_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
会覆盖同名文件,请谨慎操作。