阿里云RPA机器人自动完成银行资金审批收款

本文介绍如何使用RPA技术通过金蝶网页版自动下载银行流水,对下载的Excel数据进行去重处理,确保收款记录准确。流程包括登录金蝶、选择银行、下载表格、利用Python脚本识别重复项并删除,最后保存处理后的数据。
摘要由CSDN通过智能技术生成

任务目标:

与网页版金蝶配合,登录金蝶,将当日银行流水明细下载后,对下载的表格进行处理修正后,在金蝶对每一条打款明细进行相应的判断后收款。

登录网页金蝶:

page = rpa.app.chrome.create('http://')
        name = ''
        password = ''
        sleep(2)
        page = rpa.app.chrome.catch('金蝶云星空', mode='title', pattern='equal')
        page.click('点击切换主体', index = 1, simulate = True, button = 'left')
        sleep(2)
        page.input_text('主体输入框', value = zt, index = 1, simulate=True, replace = True, sent_raw = False, wait_mili_seconds = 20)
        sleep(1)
        rpa.ui.win32.send_key('{ENTER}')
        page.input_text("用户名",value = "")
        page.input_hotkeys('用户名','VK_SHIFT')
        page.input_text("用户名",value = name)
        page.input_hotkeys('用户名','VK_SHIFT')
        sleep(1)
        page.input_text("密码",value = password)
        sleep(1)
        page.click("登录")
        sleep(12)

下载表格:

page.click("主页点击")
        sleep(1)
        page.click("网上银行")
        sleep(1)
        page.click("银行账户交易明细查询")
        sleep(2)
        page.click('币种', index = 1, simulate = True, button = 'left')
        if bz == 'CNY':
            page.click('人民币', index = 1, simulate = True, button = 'left')
        else:
            page.click('美元', index = 1, simulate = True, button = 'left')
        sleep(1)
        page.click('币种返回', index = 1, simulate = True, button = 'left')
        sleep(1)
        page.click("选择银行账号")
        sleep(2)
        page.input_text("输入银行账号",value = banknum)
        sleep(1)
        rpa.ui.win32.send_key('{ENTER}')
        sleep(1)
        page.click("点击确认")
        sleep(1)
        page.click("银行账号返回数据")
        sleep(2)
        page.click('过滤方案确定', index = 1, simulate = True, button = 'left')
        sleep(10)
        page.click('查询选项', index = 1, simulate = True, button = 'left')
        page.click('引出1', index = 1, simulate = True, button = 'left')
        sleep(1)
        page.click('引出2', index = 1, simulate = True, button = 'left')
        sleep(1)
        page.click('下载', index = 1, simulate = True, button = 'left')
        sleep(1)
        wnd = rpa.ui.win32.catch('另存为', mode='exact', process_name='chrome', class_name='#32770')
        sleep(1)
        wnd.input_text('文件名', filename, simulate = True, replace = True, index = 1, send_window_message = True, sent_raw = False, wait_mili_seconds = 20)
        sleep(1)
        wnd.click('保存', button='left', simulate=True, index=1, offset_x=0, offset_y=0)
        sleep(1)
        page.click('关闭保存', index = 1, simulate = True, button = 'left')
        sleep(1)
        page.click('页面明细查询关闭', index = 1, simulate = True, button = 'left')
        sleep(1)
        page.click('返回主页', index = 1, simulate = True, button = 'left')
        sleep(20)

去重

count_max = int(sheet_yq_CNY.row_count())-3
        count_min = 4
        sleep(1)
        while count_min < count_max+1:
            #H单元格取值 
            Hcell = 'H'+str(count_min)
            Hcell_value = sheet_yq_CNY.read(Hcell)
            if Hcell_value!= None:
                result_yq_CNY = sheet_yq_CNY.find(Hcell_value)
                sleep(1)
                if len(result_yq_CNY)==2:
                    #如果有符号,去除第一个符号
                    #一号的收入支出
                    cell_typein1 = 'D' + str(result_yq_CNY[0][0])
                    cell_typeout1 = 'E' + str(result_yq_CNY[0][0])
                    cell_in1 = sheet_yq_CNY.read(cell_typein1)
                    cell_out1 = sheet_yq_CNY.read(cell_typeout1)
                    sleep(1)
                    #二号的收入支出
                    cell_typein2 = 'D' + str(result_yq_CNY[1][0])
                    cell_typeout2 = 'E' + str(result_yq_CNY[1][0])
                    cell_in2 = sheet_yq_CNY.read(cell_typein2)
                    cell_out2 = sheet_yq_CNY.read(cell_typeout2)
                    sleep(1)
                    #比对删除数据
                    if cell_in1==cell_out2 and cell_in1!=None and cell_out2!=None:
                        sheet_yq_CNY.delete(result_yq_CNY[1][0])
                        sheet_yq_CNY.delete(result_yq_CNY[0][0])
                        count_max -=2
                        count_min =4
                    if cell_in2==cell_out1 and cell_in2!=None and cell_out1!=None:
                        sheet_yq_CNY.delete(result_yq_CNY[1][0])
                        sheet_yq_CNY.delete(result_yq_CNY[0][0])
                        count_max -=2
                        count_min =4
                if len(result_yq_CNY)>2:
                    for p in range (len(result_yq_CNY)):
                        for q in range (p+1,len(result_yq_CNY)):
                            #如果有符号,去除第一个符号
                            #一号的收入支出
                            cell_typein1 = 'D' + str(result_yq_CNY[p][0])
                            cell_typeout1 = 'E' + str(result_yq_CNY[p][0])
                            cell_in1 = sheet_yq_CNY.read(cell_typein1)
                            cell_out1 = sheet_yq_CNY.read(cell_typeout1)
                            sleep(1)
                            #二号的收入支出
                            cell_typein2 = 'D' + str(result_yq_CNY[q][0])
                            cell_typeout2 = 'E' + str(result_yq_CNY[q][0])
                            cell_in2 = sheet_yq_CNY.read(cell_typein2)
                            cell_out2 = sheet_yq_CNY.read(cell_typeout2)
                            sleep(1)
                            #比对删除数据
                            if cell_in1==cell_out2 and cell_in1!=None and cell_out2!=None:
                                sheet_yq_CNY.delete(result_yq_CNY[q][0])
                                sheet_yq_CNY.delete(result_yq_CNY[p][0])
                                count_max -=2
                                count_min =4
                                break
                            if cell_in2==cell_out1 and cell_in2!=None and cell_out1!=None:
                                sheet_yq_CNY.delete(result_yq_CNY[1][0])
                                sheet_yq_CNY.delete(result_yq_CNY[0][0])
                                count_max -=2
                                count_min =4
                                break
                    sleep(1)
            count_min +=1
        excel_yq_CNY.save()
        sleep(1)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值