TableMaker.py

Shawn
11/22/2018

这个类负责生成邮件的内容, 为了方便所以我选择直接用html格式来实现工资表.
为了方便使用所以就直接写成了工具类.

软件本体见 https://blog.csdn.net/weixin_41084236/article/details/84325652

html相关的知识详见这里


    @staticmethoddef table(s):  # 表格总包装return "<table border=\"1px\">" + s + "</table>"@staticmethoddef tr(s):  # 表格行包装return "<tr>" + s + "</tr>"@staticmethoddef td_spin(s, span):  # 表格跨列单元格包装return f"<td colspan={span}>" + s + "</td>"@staticmethoddef td(s):  # 表格普通单元格包装return "<td>" + s + "</td>"@staticmethoddef p(s):  # 段落包装return "<p>" + s + "</p>"

这个部分用来方便实现简便的html转换, 因为要用到的功能很少, 所以就没有调用专业的库.


    @staticmethoddef salary_str(row_line_array):  # 个人数据包装, 将数组包装成表格的一行info = ""for element in row_line_array:info += TableMaker.td(element)return TableMaker.tr(info)

这个部分用来将输入的个人资料数组转换成工资表的一行


    @staticmethoddef table_head_str(date_str, title):  # 表头包装, 根据输入的标题、日期输出四行固定格式的表头line3data = ["部门", "姓名", "卡号", "开户行", "入职日期","基本工资", "岗位工资", "合计", "绩效", "工资合计","实际天数", "出勤天数", "缺勤天数", "病假天数", "缺勤","绩效","其他", "合计", "午贴", "交补","其它", "合计", "应发工资", "公司社保", "公司公积金","合计", "个人社保", "个人公积金", "其它", "合计","税前工资", "个税1", "个税2", "实发工资"]line0 = TableMaker.tr(TableMaker.td_spin(title, 34))line1 = TableMaker.tr(TableMaker.td_spin("编制单位:XXX有限公司", 14)+ TableMaker.td_spin(date_str, 12)+ TableMaker.td_spin("单位:元", 8))line2 = TableMaker.tr(TableMaker.td_spin("", 5)+ TableMaker.td_spin("工资部分", 5)+ TableMaker.td_spin("出勤", 4)+ TableMaker.td_spin("应扣项目", 4)+ TableMaker.td_spin("应发", 5)+ TableMaker.td_spin("公司部分", 3)+ TableMaker.td_spin("代缴项目", 4)+ TableMaker.td_spin("", 4))line3 = ""for item in line3data:line3 += TableMaker.td(item)line3 = TableMaker.tr(line3)return line0 + line1 + line2 + line3

这个部分用来生成固定的表头, 由需求决定. 大体上就是用单元格\跨行单元格来拼接.


    @staticmethoddef pack_up(name, salary_title, manager, date_str, personal_part):  # 表格总输出,根据输入返回完整的表格+前后段落content = ''personal_line = ''table = ''opening = ["   " + name + "您好:","感谢你对公司作出的贡献和努力!\n现向您发送" + salary_title + ",公司已代缴个人五险一金、个人所得税!您的工资条明细如下:"]ending = ["如有任何问题或疑问请在3个工作日内与"+manager+"联系,如无则默认为当月工资发放无误。谢谢!","继续加油!"]for _open in opening:content += TableMaker.p(_open)table += TableMaker.table_head_str(date_str, salary_title)for element in personal_part:personal_line += TableMaker.td(element)table += TableMaker.tr(personal_line)content += TableMaker.table(table)for _end in ending:content += TableMaker.p(_end)return content

这个部分是整个类最主要的功能, 根据输入一步输出邮件的内容.
排版为:开头段落+个人工资表+结尾段落

工资条: TableMaker部分相关推荐

  1. 工资条邮件分发 : 读取excel并单独用email发送

    工资条邮件发送软件 v1.0 作者: Shawn Python 3.7 代码地址: https://github.com/RichardFu123/pythonTools/tree/master/Sa ...

  2. 我帮公司财务写了个“群发工资条”的Python脚本

    作者 | 黄伟呢 来源 | 数据分析与统计学之美 介绍 这是一个很好的Python自动化的案例.对于小公司,采用手动方式一个个发送邮件还是可以的.如果一个上百号,上千号,或者更大规模的公司,我们再一个 ...

  3. 看到抖音上Python工程师晒得工资条,我沉默了......

    我是个抖音中毒者 闲来无事就喜欢刷抖音 最近刷到了一个Python工程师的工资条 然后我默默的打开看了 然后我默默的关闭了 我想这个工资算下来好像也不算高 我就去其他渠道搜索了一下相关的Python工 ...

  4. 用WPS表格轻松设计工资条

    用WPS表格轻松设计工资条 出处:PConline [ 2007-06-15 17:58:04 ] 作者:厂商动态 责任编辑:liushaoqun 在任何企业之财务管理中,一定少不了工资计算和设计工资 ...

  5. python对财务人员的帮助-帮公司财务妹子写了个“群发工资条”的Python脚本!

    hi,大家好,我是朱小五 两周前我发了一篇办公自动化的文章,本来决定最近这个月就不发同类型的了. 结果正如你们所见: 因为这真的是一个很好的Python自动化的案例!!! 所以即使打脸也要推荐给大家! ...

  6. python编程工资-看到抖音上Python工程师晒得工资条,我沉默了......

    原标题:看到抖音上Python工程师晒得工资条,我沉默了...... 我是个抖音中毒者 闲来无事就喜欢刷抖音 最近刷到了一个Python工程师的工资条 然后我默默的打开看了 然后就默默的关闭了 如今P ...

  7. day1 工资条的制作

    1.for要与next连用 if的用法 if **** then elseif ***** else***** endif 2.通过简单的录制宏与适当的改写完成工资条的制作Sub 工资条() ' ' ...

  8. 使用录制宏制作工资条

    工资条的制作 用excel普通操作固然能实现对工资条的制作,但我们仍希望通过自动的方法节省时间,提高工作效率,此时,我们可以通过Excel工具栏的开发工具-宏实现表格自动化,下面是使用录制宏的具体代码 ...

  9. 前有教授被骗千万,后有某重点高校青年教师晒出月薪900的工资条,大学老师工资待遇如何?...

    前有清华教授被骗千万,后有某重点高校青年教师晒出月薪900的工资条,大学老师工资待遇如何? 为了了解不同地区的高校老师待遇的差距,云南某大学老师曾在小木虫论坛发出了调查帖.回帖格式为:高校所在省份+学 ...

最新文章

  1. 进程和线程的区别与联系
  2. 教你如何运用python实现简单文件读写函数
  3. 计算机视觉(CV)的算法有哪些,具体都有哪些特点?
  4. 产品设计体会(9000)人人都是产品经理,系列说明
  5. 从初创型到独角兽企业,监控架构演进的那些事儿
  6. openstack mariadb服务启动不了_在CentOS8或者RHEL8系统上体验MariaDB
  7. 马斯克又开始了,喋喋不休,吊足大家胃口
  8. 光环大数据python爬虫
  9. 模拟微博登陆,获取微博cookie
  10. Mac系统投屏到电视机的方法
  11. EPC项目设计界面管理研究——以上海国际金融中心项目为例
  12. 详解如何在Sbo Add-on开发中使用Folder控件
  13. minitools在win10上安装失败
  14. TOP 5大数据工具,掌握1个你就是专家
  15. 架构设计:系统间通信(36)——Apache Camel快速入门(上)
  16. Dell 3620 加装SSD遇到的磁盘100%的坑
  17. C++将两个字符串合并在一起
  18. golang之gorm的事务操作 事务不成功原因
  19. Oracle DBA-01_Oracle 11G R2 for Solaris 10(Spac)安装实施报告
  20. 跃居超导和离子阱的量子计算黑马,可编程可扩展的光量子硬件

热门文章

  1. java实现空心金字塔
  2. ffmpeg 打开USB摄像头
  3. 《数据挖掘导论(完整版)》习题答案导航_补档
  4. Python语法对空格的严格要求
  5. linux系统vmd软件如何使用,VMD使用
  6. 批量替换文本中的多组字符串
  7. 华为Mate30 4G电路原理图
  8. pycharm中出现Windows PowerShell版权所有 (C) Microsoft Corporation。保留所有权利。尝试新的跨平台 PowerShell https://aka.ms/
  9. pdf转换成excel转换器哪个好
  10. Heritrix的介绍与使用