使用Python代码读取excel文档并验证扫描文件的信息是否在列表中,然后将不同文件中的单独项目分开

如何解决使用Python代码读取excel文档并验证扫描文件的信息是否在列表中,然后将不同文件中的单独项目分开

我发现自己处于打印多张纸的状态,其中包含必须通过电子邮件收到的excel文档中必须验证的信息。我的职责是通过检查分配的ID,名称,电话号码和其他信息来检查收到的工作表是否在excel列表中。我必须将它们分为3个不同区域(每个区域具有不同的格式),然后按优先级对它们进行分类。我必须将未在excel文件中列出的那些文件分开,然后将它们放在一旁,以便在第二天,下一天或下一天等其他excel列表中进行检查。即使未列出它们,我也必须对其进行分类。有时我还会取消订单。

我可以扫描已打印的图纸,然后通过电子邮件将其以PDF格式发送回我的计算机,这使我认为,由于采用了以下方法,因此肯定可以加快验证过程的速度编码的力量! (我是大约两个月前才通过python发现的一种功能)。

{sidenote}我试图通过使用粗体斜体字体来表达以下两点,使以下内容更易读:

我想找到一种自动化这些任务的方法

此信息可能与代码有关

请在这次冒险中引导我学习代码,并且如果您感到我的问题/解释缺乏或难以理解,请毫不犹豫地建议重写或添加到这些行中,我很乐意提供。我求你教育我,指出我的错误。现在,我将尽力解释我希望代码执行的操作,并提供与案例有关的信息。

  • 1 -在纸上查找与分类有关的信息。我必须翻阅纸上的某些关键字或数字,我知道该如何对这张特殊表进行分类。我试图找到一个将图像/ PDF扫描到文本的程序,但是“ pytesseract”是我几乎理解的唯一选择。我很想知道哪种方法最适合我的情况。可以设置我要查找的关键字数量,它们的长度是长度,并且如果它们具有字母数字值, >。他们通常在纸上的位置也将是一个不错的选择(我希望这会要求太多,如果可以,我很抱歉)。 因此,第一步将是对扫描的图纸进行分析以获取所需的信息,而第二步将是创建文件夹,根据分类系统所获得的信息将所有图纸放置在文件夹中(请参阅下面的2和3)。

  • 2 -根据分类系统将每张扫描纸分成不同的文件夹。我认为对每张扫描纸进行分类的最佳方法是是创建一个文件夹,如果其中一个放错了位置,可以在其中重定向它们以便于操作,这可能是错误的。我猜测分类的顺序应基于优先级,例如: [1个区域,2个日期,3个就绪,4个员工,5个没有名单,6个-canceled] =>用于 [3个不同区域] 的3个主文件夹,其中包含用于不同 [date] 的文件夹,每个日期都有2个子文件夹: [准备就绪/尚未准备就绪] ,并且在两个文件夹中均包含以下子文件夹: [员工/非员工] 。另外,还需要1个 [取消] 类型的文件夹,以及1个不适合预定类别 [未列出](请参阅下面的4个)的文件夹。

    • 2.1 -有时我会收到取消表格的通知,需要将它们放在一旁。取消的表格会写有“取消”的字样并没有确定[就绪/未就绪]或[员工/非雇员]所需的信息。这些页面仍需要在3个不同的区域和日期中划分(如果可能) ,但无需进一步分类(有时,所需的日期从工作表上的指定位置丢失了,而工作表上的其他位置则出现了另一个日期,因此我认为应该只考虑区域)。
  • 3 -识别期望/期望的数据或值。每张纸都有独特的信息/关键字,可以根据[地区]和[日期],如[准备/未准备好]和[员工/不是雇员]。要确定是否准备就绪,取决于页面上写了以下哪一项:[r / nr] = [ DT / NON-DT ](如果出现以下情况,这两个值应始终出现在纸上:则不是最有可能是已取消的表单)。 [e / ne] = [ G8,G9,G18,G23 /除此选择以外的其他人都不是雇员]

  • 4 -浏览每个扫描的页面,以查看其信息是否列在excel文件的某一行中,然后将每张工作表归为各自的类别, =>这是为了证明我的扫描纸已经在我的excel工作表中列出或未 [列出/未列出] 。我用来对工作表进行分类的excel文件中有许多不必要的列,我只需要状态,ID,姓氏,名字,评论和电话号码。在excel文件中,每一行都是不同的项目和列将保存诸如ID和Names之类的信息集。同样,每张扫描的纸可能来自三个区域之一,每个区域都有其自己的页面布局。我需要能够对我的[未列出]选择进行分类,并将它们与另一个系统一起运行稍后列出。

因此,我相信这是我希望通过Python代码自动化的任务的主要思想背后的所有必要信息。读取已扫描的工作表和Excel文档,以期通过检查设置的因素数来验证单个扫描的工作表是否是指定列表中引用的工作表,同时最终为按重要性排序的工作表创建多个文件夹

希望这是初学者可以学习的东西!

解决方法

尽管需要一些时间和精力,但您绝对可以学习使这些任务自动化所需的一切。只需按照步骤奉献,您将在几周/几个月内到达那里(取决于您的步调):

  1. 您将首先要学习编程的基础知识(使用python作为主要语言)。
  2. 继续,您将需要探索openpyxl之类的库以轻松与excel文件进​​行交互。
  3. 然后,您将要探索可以读取和分类PDF数据的库(您无需了解PDF的复杂性,只要找到合适的库即可通过某种Google搜索为您完成工作)。

由于您的目标只是自动化(而不是学习计算机科学基础知识,例如数据结构),所以我建议您通过“使用Python自动化无聊的东西” [https://automatetheboringstuff.com/ ]。它是面向所有初学者(甚至是具有先驱知识的人士,他们想了解Python在自动化中的实际应用)的惊人资源。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 <select id="xxx"> SELECT di.id, di.name, di.work_type, di.updated... <where> <if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 <property name="dynamic.classpath" value="tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams['font.sans-serif'] = ['SimHei'] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -> systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping("/hires") public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate<String
使用vite构建项目报错 C:\Users\ychen\work>npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-