本宝宝有个工作中,需要报送个人所得税,其实以前我写过一个集成报送各年金税金vba的小代码,但是因为新接的任务数据量太大,vba可能会假死,即使能处理,也因为最近在自学python,所以想尝试用python
我的思路是:把报税模板复制出来,然后每月自动根据年金领取信息填写保存,吐槽一下,税表模板是xls,只支持6万数据,我尝试用一个xlsx文件上传,不过也成功了,嘻嘻,所以我手工把模板改成xlsx格式
第一步:复制模板
野生代码如下:
import pandas as pd
import numpy as np
import shutil
import os
import datetime
data_today = datetime.date.today()
print(data_today)
person_template = 'D:\报税工作\报税模板\人员信息.xlsx'
income_template = 'D:\报税工作\报税模板\年金领取.xlsx'
person_form='D:\报税工作\\xx计划年金人员'+str(data_today)+'.xlsx'
income_form='D:\报税工作\\xx计划年金收入'+str(data_today)+'.xlsx'
shutil.copyfile(person_template, person_form)
shutil.copyfile(income_template, income_form)
成功运行
然后使用了 dataframe和numpy数组进行把原始数据整理以后分别填入两个税表保存,
不管怎样,程序可以用,但是笨猪我用了遍历,好慢
12万数据简直卡死
重新搜索,利用dataframe的特性
7539人大概5秒钟就可以运行完毕
13万7500人大概使用35秒,完美!!!
import pandas as pd
import numpy as np
import shutil
import datetime
import xlwings as xw
app=xw.App(visible=True,add_book=False)
app.display_alerts=False
app.screen_updating=False
date_today = datetime.date.today()
starttime = datetime.datetime.now()
person_template = 'D:\报税工作\报税模板\人员信息.xlsx'
income_template =