mysql 通过Python使用正则表达式提取Excel数据

iyr7buue  于 2022-10-31  发布在  Mysql
关注(0)|答案(1)|浏览(106)

这是一系列问题的第一部分,我将在这个论坛上提出,所以请容忍我在这一个。我是一个新手程序员谁承担了一个大项目,因为我喜欢折磨自己,所以请善良。
我正在编写一个Python脚本来处理一个包含账户的Excel文档(见下面的例子),每个账户都是相同的格式,从文档中提取特定类型的数据,然后将数据导出到SQL表中。这是我在纸上演示脚本时想到的流程:
输入为包含记账科目的大型Excel文档,格式如下:
https://i.stack.imgur.com/Htdze.png)的最大值
要提取的数据是帐户名和编号(它们位于同一个单元格上,因此我发现将它们一起提取更容易,这样我就可以将它们用作SQL表中的主键;我会在另一篇文章中讨论这一点),以及上面突出显示的整个账户明细表。请注意,文档中有数千个这种格式的记账账户,其中多个用于相同的账户名称和编号,这意味着它们具有相同的标题,但明细不同。
数据处理过程如下:
1.使用正则表达式匹配、提取每个帐户名和帐号并将其存储在数组中(这样我就可以记录每个帐号并将其用作SQL表中的主键)
1.提取每个帐户详细信息表的内容,并将其与各自的帐户名称和编号进行匹配(还没有弄清楚如何执行此操作,但是,在导出数据后,我将使用关系表将它们链接到主键)。
1.将提取的数据导出到数据库软件中(mySQL或MS Access......很可能使用MS Access)。
1.在提取和处理数据后,将创建一个Excel报告,该报告由一个表格组成,第一列是帐户的名称和编号,然后是帐户的详细信息(将在稍后发布)。

第1部分:Excel数据提取/“抓取”

快速注意:我已经尝试了多种方法,如(MS Access,VBA和MS Power Automate)来做到这一点,避免手动编码的一切,最终失败得很惨,所以我决定咬紧牙关,只是这样做。
所以问题是:在做了一些研究之后,我遇到了多种从Excel中提取数据的方法,以及几种使用regex进行Web抓取和PDF数据提取的方法。
有没有一种方法可以通过Python使用正则表达式匹配从Excel文档中提取数据?如果有,我该怎么做?
PS:我将在另一个帖子中记录我在这个论坛中的旅程,以帮助其他数据输入工作者。

gxwragnw

gxwragnw1#

查看这些python模块:

import xlwt
from xlwt.Workbook import *
import xlsxwriter
import numpy as np
import pandas as pd
from pandas import ExcelWriter

然后您可以使用panda Dataframe ,例如:

data = pd.read_excel('testacct.xlsx')

这会将整个电子表格放入带有通用列名的字典中:

如果有多个工作表,那么df对象将是一个字典列表。每一列是一个列表或行数据。
您可以遍历行,如下所示:

cols = data.keys()
for row in range(len(data[cols[0]])):
    for col in cols:
        print(data[col][row])
    print("--")

您可以连接列数据并去掉空格。然后您可以对任何标题值使用regex。

相关问题