内容摘要在记账凭证电子化存储的时代,如何快速地翻凭证、核对账实信息?

技术贴时间,代码很业余,专业人士请忽略!

问题背景

原始情况比较复杂,可以简化描述成如下的场景:

一次风险排查中偶然发现,系统导出的账户交易明细中经办人和原始记账凭证签字经办人员不一致。对这个疑点首先需要判断的就是这种情况是否普遍,然后再核查原因。

这就需要先对交易明细进行抽样,然后比对电子明细中的经办人和对原始记账凭证上的签名是否一致,根据比对结果评估总体情况。

这项工作面临的环境如下:交易明细很庞大,即使是抽样,样本数也很大,翻阅纸质原始凭证的工作量非常大。

原始凭证都已扫描成图像存储,且图像的尺寸(size)一致、文件名就是凭证号码。

凭证影像按照月份刻录成光盘备份,一般存在在“凭证影像”目录下。

解决思路

1.数据分析

账户交易明细的核心字段如下:

其中凭证号和原始凭证电子影像文件名一致,比如凭证号“20190321”对应的影像文件名是"20190321.jpg"。

凭证的电子影像示例如下:

(图片来自网络,仅仅作为示例,侵删)

其中红色区域为经办人员签名区域,也是需要根据电子明细数据核对信息的区域。

2.实现路径

基于如上对原始数据和资料的分析,可以考虑:根据电子明细数据中的“凭证号”字段,查找对应的影像文件;

截取签名区域;

将截图插入到电子明细数据Excel文件中。

这样就可以基于电子明细数据快速进行比对,而不需要一边看数据、一边翻凭证,大大提高效率。

数据分析环境

本文分析所使用的环境具体如下:软件或环境说明Win10 64位系统环境

Python 2.7数据分析语言平台

openpyxl 2.6.4Excel读写库

PIL 1.1.7图像处理库

实现代码

代码可以按住屏幕,左右滑动查看

1.环境初始化# -*- coding:utf-8 -*-from openpyxl import load_workbookfrom openpyxl.utils import column_index_from_stringfrom openpyxl.drawing.image import Imagefrom PIL import Image as PILImageimport os, glob

2.打开明细文件进行相关设置# 打开明细Excel文件filename = u'凭证明细文件.xlsx'wb = load_workbook(filename)ws = wb.active# 根据图像宽度设置单元格的宽度ws.column_dimensions['F'].width = 70

3.查找凭证影像文件截图写入# 循环读取明细文件的“凭证号”字段 并判断相应的凭证影像文件是否存在# 如果存在从影像文件中截取相应的签名栏目 填充到Excel文件中# 如果不存在 则标注未找到凭证影像for row in range(2,ws.max_row+1):# 读取凭证号字段的值 查找影像文件 v = ws.cell(row=row, column=column_index_from_string('E')).valueif os.path.isfile(u'凭证影像/{}.jpg'.format(v)): print u'找到-凭证影像/{0}.jpg'.format(v) imgsigfile = u'凭证影像/{0}-tmp.jpg'.format(v) # 打开凭证图像文件 并根据签字的位置 截取成签字图像 with PILImage.open(u'凭证影像/{0}.jpg'.format(v)) as imgorg: imgsig = imgorg.crop(box=(50,310,550,340)) imgsig.save(imgsigfile) # 将截取的签字图像插入到Excel单元格中 print '插入到 F{0}'.format(row) ws.add_image(img=Image(imgsigfile), anchor= 'F{0}'.format(row)) ws.row_dimensions[row].height = imgsig.height*0.8 else: ws['F{0}'.format(row)] = u'未找到凭证影像'# 将插入签字图片的文件另存成一个新文件wb.save(u'添加签字图片-{0}'.format(filename))wb.close

4.清理生成的签字临时文件# 清理生成的签字临时文件for f in glob.glob(u'凭证影像/*-tmp.jpg'): os.remove(f)

5.处理结果

最后生成的电子明细数据表格(加签字图片-凭证明细文件.xlsx)如下。浏览这表格就可以快速比对经办人和签字人。

延伸思考

收集足够的经办人签字样本,进行机器学习训练。

基于训练结果,可以自动对凭证影像上的签字进行识别,判断流水中的经办人是否是签字人。

python如何快速登记凭证_如何高效地翻凭证?相关推荐

  1. python编程快速上手自动化_《Python编程快速上手 让繁琐工作自动化》完整版PDF...

    image.png <Python编程快速上手 让繁琐工作自动化>完整版PDF 提取码:7qm4 3.jpg 有关本书 累计销售超过10万册 零基础编程者的不二之选 基于Python3编写 ...

  2. python如何快速登记凭证_不动产登记流程优化了 用Python爬取具体优化流程(一)...

    为贯彻落实国务院办公厅关于压缩不动产登记办理时间的通知要求,自然资源部以为企业和群众"办好一件事"为标准,重点针对流程相对复杂.业务办理量大的26种不动产登记类型,通过优化流程,提 ...

  3. python实现洗牌算法_如何高效而完美地洗牌?用Python做很简单

    Python不用学,看看你就懂:拿来就能用,用用你就会 无需安装编程软件,把代码拷贝到在线编辑器即可运行 考虑一下扑克牌,如何用电脑编程做到高效而完美地洗牌呢? 要求是代码少.效率高,洗牌的结果要同时 ...

  4. python怎么快速打括号_三分钟,让你弄清楚Python中函数的括号使用

    一直以来对python中函数括号的使用,有点分不清楚,到底什么时候用括号,什么时候不用括号,造成了很大困惑. 执行结果: 根据结果来分析: 1. x = aaa aaa是一个类名,后面没加括号,打印结 ...

  5. python实现快速创建订单_从销售订单和Od中的产品订单创建新记录

    我想在调用事件后用sale order自定义类中的产品创建记录集.我将在中创建一个记录销售订单和创建发票一样,我将在我的自定义模块中创建记录.在 我所做的是: 在我的自定义类中:class Loadi ...

  6. python编程快速上手自动化_《Python编程快速上手 让繁琐工作自动化(异步图书出品)》([美]Al Sweigart(斯维加特))【摘要 书评 试读】- 京东图书...

    权利声明: 京东上的所有商品信息.客户评价.商品咨询.网友讨论等内容,是京东重要的经营资源,未经许可,禁止非法转载使用. 注:本站商品信息均来自于合作方,其真实性.准确性和合法性由信息拥有者(合作方) ...

  7. python怎么快速打括号_中括号怎么打-【python每日一练】有效括号

    给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合. 左括号必须以正确的顺序闭合. 注意空字符串可被认 ...

  8. python编程快速上手办公自动化_关于即时通信机器人的解答

    #! python3 # 即时通信机器人.py - 自动发送消息# 模块引用 import time, pyautogui # 基本参数 menuFiled = (1450, 1030) # 菜单栏, ...

  9. 金蝶eas怎么引出凭证_金蝶EAS如何设置凭证模版

    在使用金蝶软件的时候需要关注到更多方面的内容,因为如今这个品牌的软件类型有很多,因此在实际使用的时候也能够呈现出更好的效果.想要让企业发展的更好就要选更适合的金蝶软件.为企业的实际需要带来帮助,实际上 ...

最新文章

  1. win7拒绝访问_win7系统提示无法访问application data如何解决
  2. nginx日志切割定时执行脚本
  3. 掘金专访 - 收藏集 - 掘金
  4. C++——《数据结构与算法》实验——排序算法的实现
  5. 水题 逆序对 NOIP 2013 火柴排队
  6. ssl2863-石子合并【dp练习】
  7. Java笔记-Servlet相关记录
  8. 计算机网络—信道划分与介质访问控制
  9. Struts2常用标签总结
  10. IntelliJ IDEA Community Edition 社区版插件汇总
  11. sap的工作日历_ABAP-有关日期的SAP函数使用(日历)
  12. HTML页面布局适配不同分辨率
  13. 计算机系统时间显示不准确的原因,电脑时间总是不对原因 电脑时间总是不对三种解决方案...
  14. 关于ABAQUS2020二次开发
  15. python计算方位角_python实现两个经纬度点之间的距离和方位角
  16. mysql将公历农历转换_SQL农历转换函数(显示中文格式,加入润月的显示)
  17. 切换窗口快捷键 你知道吗?
  18. Autonomous automobile trajectory tracking for off-road driving翻译学习
  19. 在linux系统上查看本机ip地址
  20. Elastic认证考试:备考环境完全指南

热门文章

  1. QT5.9连接MySQL5.7解决QSqlDatabase: QMYSQL driver not loaded问题
  2. 关于部分手机无法搜索到5G wifi信号的解决方法
  3. java.io.FileNotFoundException异常,一是“拒绝访问”,二是“系统找不到指定路径”
  4. VS2017 启动调试出现 无法启动程序“http://localhost:15613” 操作在当前状态中是非法的。 同时附加进程也是错误的解决方法
  5. 用于检测浏览器语言偏好的JavaScript
  6. 标准Android按钮具有不同的颜色
  7. 将Unix时间戳字符串转换为可读日期
  8. Win10电脑安装打印机驱动运转打印机的方法
  9. Win11如何使用多桌面功能?Win11使用多桌面功能的方法
  10. mysql关闭显示无权限_如何关闭mysql远程登录权限