一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种表格数据读取方法与流程

2022-11-19 08:55:08 来源:中国专利 TAG:


1.本发明涉及表格数据读取技术领域,尤其涉及一种表格数据读取方法。


背景技术:

2.业务人员在日常工作中经常会使用电子表格管理工作所需的各种业务数据,如借款人名单、逾期名单、黑白名单等,同时随着信息化的进一步深化,电子表格中的业务数据经常会通过导入、上传等功能输入到业务系统中去。因此在日常开发中经常会碰到这种读取xlsx表格内容后进行后续入库和分析处理等操作。现有技术的处理方式为通过代码完成xlsx的读入和根据数据在表格中的具体位置逐个读取数据直到数据全部处理完成为止,例如:从c列的第三行开始读取姓名、身份证等数据后,执行入库处理,接着读取第四行数据执行入库处理,依次处理直到数据全部处理完成为止。
3.由于直接通过解析代码完成表格数据的全部读取过程,因此,现有的技术方案中,表格的格式信息与业务的具体数据耦合较为密切,当电子表格中表单的格式或布局发生变化时,就需要修改源代码相关的数据读取逻辑,并进行重新编译发版,耗时较长且过程较为繁琐。同时,由于针对不同需求下的不同表格,需要修改原有代码或者重新编写新的代码,存在代码冗余的问题。当代码被改动后或重新编写后,则需要重新进行测试和发版等一系列工作。


技术实现要素:

4.本发明提供一种表格数据读取方法,提高了针对表格数据读取的需求开发效率。
5.本发明一实施例提供一种表格数据读取方法,包括以下步骤:
6.对表格文件的表格格式进行分析确定配置文件规则,根据所述配置文件规则编写配置文件;
7.打开所述表格文件,通过解析代码读取所述配置文件,并根据所述配置文件的读取结果对所述表格文件进行解析;
8.根据预设的输出规则,以json字符串的方式输出所述表格文件的解析结果。
9.进一步的,对所述表格格式进行分析确定配置文件规则,具体为:通过对所述表格格式进行分析得到表格元素项。
10.进一步的,根据所述配置文件规则编写配置文件,具体为:通过配置文件标签表示所述表格元素项,并建立所述配置文件标签和表格数据之间的对应关系。
11.进一步的,所述表格文件为xlsx文件,所述表格元素项具体包括:
12.sheet名称、非列表项内容的名称、非列表项内容在表格中的位置、列表项的名称、列表项的开始行、列表项数据名称标识、列表项数据位置和列表项数据是否为关键数据。
13.进一步的,通过解析代码读取所述配置文件,并根据所述配置文件的读取结果对所述表格文件进行解析,具体为:通过java代码或python代码读取所述配置文件的标签,并根据读取的所述标签对所述表格文件进行解析。
14.进一步的,通过配置文件标签表示所述表格元素项,具体为:
15.sheet.name表示所述sheet名称;
16.sheet.single.name表示所述非列表项内容的名称;
17.sheet.single.pos表示所述非列表项内容在表格中的位置;
18.sheet.list.name表示所述列表项的名称;
19.sheet.list.startrow表示所述列表项的开始行;
20.sheet.list.data.name表示所述列表项数据名称标识;
21.sheet.list.data.pos表示所述列表项数据位置;
22.sheet.list.data.iskey表示所述列表项数据是否为关键数据。
23.进一步的,根据读取的所述标签对所述表格文件进行解析,包括以下步骤:
24.步骤s1:根据读取到的sheet.name标签,找到xlsx文件中对应的sheet并读取所述对应的sheet;
25.步骤s2:根据读取到的sheet.single.name和sheet.single.pos标签,从所述对应的sheet中找到非列表项所在的单元格,读取所述单元格,并将读取结果保存至相应的json中;
26.步骤s3:根据读取到的sheet.list.name和sheet.list.startrow,从所述对应的sheet中找到列表项的名称和列表项的开始行,从所述列表项的开始行开始对所有列表项进行解析,并根据sheet.list.data.name和sheet.list.data.pos,对解析得到的列表项数据进行保存;
27.步骤s4:当sheet.list.data.iskey标识为关键数据的列表项数据为空时,判断所有列表项解析完毕,停止对所述列表项的解析;
28.步骤s5:判断所述xlsx文件的sheet是否解析完毕,若否,则跳转至步骤s1,若是,则完成对所述xlsx文件的解析。
29.进一步的,采用poi技术或openpyxl技术打开所述xlsx文件。
30.进一步的,根据预设的输出规则,以json字符串的方式输出所述表格文件的解析结果,具体为:
31.预设输出规则为以一个列表项包括的全部列表项数据为单位,形成所述表格文件的输出列表;
32.将所述输出列表以json字符串的方式进行输出。
33.进一步的,从所述json字符串中获取业务数据进行业务计算和保存至数据库。
34.本发明的实施例,具有如下有益效果:
35.本发明提供了一种表格数据读取方法,该方法通过根据所述配置文件规则编写配置文件,和通过在所述配置文件中建立所述配置文件标签和表格数据之间的对应关系,从而将表格格式信息保存至配置文件中,再通过解析代码读取所述配置文件,从所述配置文件中提取表格的格式信息,再根据提取的格式信息(即表格元素项)对表格文件进行解析,实现了将表格格式与表格数据的解耦,即避免了在解析代码中直接写明表格的格式信息,并避免了直接通过解析代码完成表格数据的全部读取过程。因此,本发明通过将表格的格式信息保存至配置文件,再通过解析代码读取所述配置文件并根据提取的格式信息(即表格元素项)对表格文件进行解析,避免在通过解析代码完成表格数据的全部读取过程,进而
当表格格式信息发生变化时,仅通过修改或编写配置文件即可实现对具有新格式的表格文件的读取,而无需修改解析代码。在本领域中,修改配置文件后,重新对表格文件进行读取时,无需重新进行发版等额外的版本发布工作,而现有技术采用直接修改解析代码时,则需要重新进行发版,因此,本发明提高了针对需求开发和功能测试的效率,也提高了表格数据的读取效率。同时,由于本发明仅需要进行配置文件的编写,无需专业的技术人员进行文件解析代码的开发,在针对大批量不同格式的电子表格内容进行读取时提高了开发工作效率,降低了开发门槛。由于不用将表格读取和后续处理均直接通过解析代码实现,也避免了代码冗余。
附图说明
36.图1是本发明一实施例提供的表格数据读取方法的流程示意图;
37.图2是本发明一实施例提供的表格数据读取方法的表格文件内容示意图。
具体实施方式
38.下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
39.如图1所示,本发明一实施例提供的一表格数据读取方法,包括以下步骤:
40.步骤s101:通过对表格文件的表格格式进行分析确定配置文件规则,根据所述配置文件规则编写配置文件。
41.作为其中一种实施例,通过对所述表格格式进行分析确定配置文件规则,根据所述配置文件规则编写配置文件,具体为:通过对所述表格格式进行分析得到表格元素项,在配置文件中通过配置文件标签表示所述表格元素项,并建立所述配置文件标签和表格数据之间的对应关系。
42.作为其中一种实施例,所述表格文件为xlsx文件,所述表格元素项具体包括:
43.sheet名称、非列表项内容的名称、非列表项内容在表格中的位置、列表项的名称、列表项的开始行、列表项数据名称标识、列表项数据位置和列表项数据是否为关键数据。
44.作为其中一种实施例,通过配置文件标签表示所述表格元素项,具体为:
45.sheet.name表示所述sheet名称;
46.sheet.single.name表示所述非列表项内容的名称;
47.sheet.single.pos表示所述非列表项内容在表格中的位置;
48.sheet.list.name表示所述列表项的名称;
49.sheet.list.startrow表示所述列表项的开始行;
50.sheet.list.data.name表示所述列表项数据名称标识;
51.sheet.list.data.pos表示所述列表项数据位置;
52.sheet.list.data.iskey表示所述列表项数据是否为关键数据。
53.作为其中一种实施例,所述xlsx文件的表格格式如图2所示,通过配置文件标签表示所述表格元素项,并建立所述配置文件标签和表格数据之间的对应关系,得到配置文件
的内容如下:
[0054][0055]
步骤s102:打开所述表格文件,通过解析代码读取所述配置文件,并根据所述配置文件的读取结果对所述表格文件进行解析。优选的,采用poi技术或openpyxl技术打开所述xlsx文件。
[0056]
作为其中一种实施例,通过解析代码读取所述配置文件,并根据所述配置文件的读取结果对所述表格文件进行解析,具体为:通过java代码或python代码读取所述配置文件的标签,并根据读取的所述标签对所述表格文件进行解析。
[0057]
作为其中一种实施例,根据读取的所述标签对所述表格文件进行解析,包括以下步骤:
[0058]
步骤s1021:根据读取到的sheet.name标签,找到xlsx文件中对应的sheet并读取所述对应的sheet;具体的,所述sheet.name标签找到xlsx文件中名字为“黑名单”的sheet。
[0059]
步骤s1022:根据读取到的sheet.single.name和sheet.single.pos标签,从所述对应的sheet中找到非列表项所在的单元格,读取所述单元格,并将读取结果保存至相应的json中;
[0060]
步骤s1023:根据读取到的sheet.list.name和sheet.list.startrow,从所述对应的sheet中找到列表项的名称为“名单列表”和列表项的开始行为3,从所述列表项的开始行开始对所有列表项进行解析,并根据sheet.list.data.name和sheet.list.data.pos,对解析得到的列表项数据进行保存;具体的,根据sheet.list.data.name解析得到列表项数据名称标识(如编号、姓名、身份证和手机号),根据sheet.list.data.pos(如b3、c3、d3、e3)解析得到所述列表项数据名称标识对应的数据,即所述编号、姓名、身份证和手机号对应的具体数据。
[0061]
步骤s1024:当sheet.list.data.iskey标识为关键数据的列表项数据为空时,判断所有列表项解析完毕;具体的,将编号标识为关键数据,当解析至所述编号对应的数据为空时,判断所有列表项解析完毕,停止对所述列表项的解析。
[0062]
步骤s1025:判断所述xlsx文件的sheet(如图2所示,包括黑名单、白名单和联系人)是否解析完毕,若否,则读取下一个sheet对应的配置内容并跳转至步骤s1021,若是,则完成对所述xlsx文件的解析。
[0063]
步骤s103:根据预设的输出规则,以json字符串的方式输出所述表格文件的解析结果。
[0064]
作为其中一种实施例,根据预设的输出规则,以json字符串的方式输出所述表格文件的解析结果,具体为:
[0065]
预设输出规则为以一个列表项包括的全部列表项数据为单位,形成所述表格文件的输出列表;
[0066]
将所述输出列表以json字符串的方式进行输出,从所述json字符串中获取业务数据进行业务计算和保存至数据库。
[0067]
作为其中一种实施例,所述预设的输出规则为:
[0068]
[0069][0070]
本发明根据所述配置文件规则编写配置文件,并通过在所述配置文件中建立所述配置文件标签和表格数据之间的对应关系,从而将表格格式信息保存至配置文件中,再通过解析代码读取所述配置文件,从所述配置文件中提取表格的格式信息,再根据提取的格式信息(即表格元素项)对表格文件进行解析,实现了将表格格式与表格数据的解耦,即避免了在解析代码中直接写明表格的格式信息,并直接通过解析代码完成表格数据的全部读取过程。因此,本发明通过将表格的格式信息保存至配置文件,再通过解析代码读取所述配置文件并根据提取的格式信息(即表格元素项)对表格文件进行解析,避免在通过解析代码完成表格数据的全部读取过程,进而当表格格式信息发生变化时,仅通过修改或编写配置文件即可实现对具有新格式的表格文件的读取,而无需修改解析代码。在本领域中,修改配置文件后,重新对表格文件进行读取时,无需重新进行发版等额外的版本发布工作,而现有技术采用直接修改解析代码时,则需要重新进行发版,因此,本发明提高了针对需求开发和功能测试的效率,同时也提高了表格数据的读取效率。同时,由于本发明仅需要进行配置文件的编写,无需专业的技术人员进行文件解析代码的开发,在针对大批量不同格式的电子表格内容进行读取时提高了开发工作效率,降低了开发门槛。由于不用将表格读取和后续
处理均直接通过解析代码实现,也避免了代码冗余。
[0071]
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
[0072]
本领域普通技术人员可以理解实现上述实施例中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)或随机存储记忆体(random access memory,ram)等。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献