首页 > 编程语言 >Python扫描枪读取发票数据导入Excel

Python扫描枪读取发票数据导入Excel

时间:2025-01-13 13:54:15浏览次数:1  
标签:扫描枪 sheet Python max Excel datetime cell 发票 textList

财务需要一个扫描枪扫描发票文件,并将主要信息录入Excel 的功能。

文件中sheet表的列名称,依次为:发票编号、发票编码、日期、金额、工号、扫描日期。
扫描的时候,Excel 文件需要关闭,否则会报错。

import openpyxl
import datetime


def write_line_excel(text):
    if text == '':
        return
    work_book = openpyxl.load_workbook('fapiaosaomiao.xlsx')
    sheet = work_book.active
    max_rows = sheet.max_row

    # 获取发票编码 一列
    fapiaoList = [cell.value for cell in sheet['B']]
    # 解析文本
    textList = text.split(',')
    # 判断发票是否重复,如果重复,就直接打印发票重复,实际业务需要
    if textList[3] in fapiaoList:
        print("发票编码重复:" + textList[3])
        return
        
    # 这里的判断是因为有2种类型的发票文件
    # 判断第3个元素内容,如果是空,那么是新版,如果是数字,那么是旧发票
    if textList[2] != '':
        # 发票编号
        sheet.cell(max_rows + 1, 1, textList[2])

    # 发票编码
    sheet.cell(max_rows + 1, 2, textList[3])
    # 日期
    # 这里只是修改日期的显示格式,实际业务需要
    date_str = textList[5][:4] + '-' + textList[5][4:6] + '-' + textList[5][-2:]
    sheet.cell(max_rows + 1, 3, date_str)
    # 金额
    sheet.cell(max_rows + 1, 4, textList[4])
    # 工号,填空即可,实际业务需要
    sheet.cell(max_rows + 1, 5, 0)
    # 扫描日期
    # 获取当前日期和时间
    current_datetime = datetime.datetime.now()
    # 格式化当前日期和时间
    formatted_datetime = current_datetime.strftime('%Y/%m/%d %H:%M:%S')
    sheet.cell(max_rows + 1, 6, formatted_datetime)
    work_book.save("fapiaosaomiao.xlsx")


def main():
    while True:
        scanned_data = input("扫描内容或指令:")
        if scanned_data == 'q':
            exit()

        write_line_excel(scanned_data)


if __name__ == "__main__":
    main()

标签:扫描枪,sheet,Python,max,Excel,datetime,cell,发票,textList
From: https://www.cnblogs.com/studyming/p/18668489

相关文章

  • 【Python】深入解析Python的上下文管理器与资源管理:实现自定义的`with`语句
    《PythonOpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门!解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界在现代编程中,资源管理的高效与安全性至关重要。Python通过上下文管理器与with语句为开发者提供了一种简洁而强大的资源管理机制。上下文管理器......
  • Python seaborn和matplotlib,怎么选?
    最近,一些小伙伴留言询问seaborn和matplotlib怎么选,还是两个都要学?本文详细回答以下问题:seaborn和matplotlib是什么?seaborn和matplotlib的优劣势?seaborn和matplotlib怎么选?seaborn和matplotlib怎么学?seaborn和matplotlib是什么?seaborn和matplotlib是Python可视化方向最优秀......
  • 【含文档+PPT+源码】基于Python的图书推荐系统的设计与实现
    课程简介:本课程演示的是一款基于python的图书推荐系统的设计与实现,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Python学习者。1.包含:项目源码、项目文档、数据库脚本、软件工具等所有资料2.带你从零开始部署运行本套系统3.该项目附带的源码资料可作为......
  • python毕设基于javaweb的汽车商城管理系统程序+论文
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景关于汽车商城管理系统的研究,现有研究主要以传统的管理模式或单一功能模块为主,专门针对基于JavaWeb的Python毕设汽车商城管理系统的研......
  • Python异步编程在股票交易系统中的应用:如何减少延迟提升效率
    炒股自动化:申请官方API接口,散户也可以python炒股自动化(0),申请券商API接口python炒股自动化(1),量化交易接口区别Python炒股自动化(2):获取股票实时数据和历史数据Python炒股自动化(3):分析取回的实时数据和历史数据Python炒股自动化(4):通过接口向交易所发送订单Python炒股自动化(5):......
  • 2025毕设python银行账户管理系统程序+论文
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景关于银行账户管理系统的研究,现有研究主要以大型银行或通用银行系统为主,专门针对python实现的银行账户管理系统的研究较少。因此本选题......
  • 2025毕设python影视评论系统程序+论文
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景关于影视评论系统的研究,现有研究主要以影评网站的运营模式、影评对电影票房的影响等为主。专门针对利用Python构建影视评论系统的研究......
  • Excel数据叠加生成新DataFrame:操作指南与案例
    目录一、准备工作二、读取Excel文件三、数据叠加四、处理重复数据(可选)五、保存新DataFrame到Excel文件六、案例演示七、注意事项八、总结在日常数据处理工作中,我们经常需要将不同Excel文档中的数据整合到一个新的DataFrame中,以便进行进一步的分析和处理。本文将介绍......
  • 科研绘图系列:python语言绘制SCI图合集
    介绍科研绘图系列:python语言绘制SCI图合集加载pythonimportnumpyasnpimportpandasaspdimportmatplotlib.pyplotaspltimportmatplotlib.patchesasmpatchesimportseabornassnsfromstatsmodels.stats.multitestimportmultipletests#Setupforlocal......
  • [oeasy]python059变量命名有什么规则_惯用法_蛇形命名法_name_convention_snake
    中文能用在python里吗_汉语拼音变量名_蛇形命名法_驼峰命名法回忆上次内容上次玩的还是下划线下划线在变量定义的时候代替空格 空格本身也很重要留白让代码提高可读性   添加图片注释,不超过140字(可选) 还有什......