一种表格数据读取方法技术

技术编号:35649156 阅读:12 留言:0更新日期:2022-11-19 16:43
本发明专利技术公开了一种表格数据读取方法。该方法包括对表格文件的表格格式进行分析确定配置文件规则,根据所述配置文件规则编写配置文件;打开所述表格文件,通过解析代码读取所述配置文件,并根据所述配置文件的读取结果对所述表格文件进行解析;根据预设的输出规则,以Json字符串的方式输出所述表格文件的解析结果。本发明专利技术技术方案提高了针对表格数据读取的需求开发效率。需求开发效率。需求开发效率。

【技术实现步骤摘要】
一种表格数据读取方法


[0001]本专利技术涉及表格数据读取
,尤其涉及一种表格数据读取方法。

技术介绍

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

技术实现思路

[0004]本专利技术提供一种表格数据读取方法,提高了针对表格数据读取的需求开发效率。
[0005]本专利技术一实施例提供一种表格数据读取方法,包括以下步骤:
[0006]对表格文件的表格格式进行分析确定配置文件规则,根据所述配置文件规则编写配置文件;
[0007]打开所述表格文件,通过解析代码读取所述配置文件,并根据所述配置文件的读取结果对所述表格文件进行解析;
[0008]根据预设的输出规则,以Json字符串的方式输出所述表格文件的解析结果。
[0009]进一步的,对所述表格格式进行分析确定配置文件规则,具体为:通过对所述表格格式进行分析得到表格元素项。
[0010]进一步的,根据所述配置文件规则编写配置文件,具体为:通过配置文件标签表示所述表格元素项,并建立所述配置文件标签和表格数据之间的对应关系。
[0011]进一步的,所述表格文件为xlsx文件,所述表格元素项具体包括:
[0012]Sheet名称、非列表项内容的名称、非列表项内容在表格中的位置、列表项的名称、列表项的开始行、列表项数据名称标识、列表项数据位置和列表项数据是否为关键数据。
[0013]进一步的,通过解析代码读取所述配置文件,并根据所述配置文件的读取结果对所述表格文件进行解析,具体为:通过Java代码或Python代码读取所述配置文件的标签,并根据读取的所述标签对所述表格文件进行解析。
[0014]进一步的,通过配置文件标签表示所述表格元素项,具体为:
[0015]sheet.name表示所述Sheet名称;
[0016]sheet.single.name表示所述非列表项内容的名称;
[0017]sheet.single.pos表示所述非列表项内容在表格中的位置;
[0018]sheet.list.name表示所述列表项的名称;
[0019]sheet.list.startRow表示所述列表项的开始行;
[0020]sheet.list.data.name表示所述列表项数据名称标识;
[0021]sheet.list.data.pos表示所述列表项数据位置;
[0022]sheet.list.data.isKey表示所述列表项数据是否为关键数据。
[0023]进一步的,根据读取的所述标签对所述表格文件进行解析,包括以下步骤:
[0024]步骤S1:根据读取到的sheet.name标签,找到xlsx文件中对应的Sheet并读取所述对应的Sheet;
[0025]步骤S2:根据读取到的sheet.single.name和sheet.single.pos标签,从所述对应的Sheet中找到非列表项所在的单元格,读取所述单元格,并将读取结果保存至相应的Json中;
[0026]步骤S3:根据读取到的sheet.list.name和sheet.list.startRow,从所述对应的Sheet中找到列表项的名称和列表项的开始行,从所述列表项的开始行开始对所有列表项进行解析,并根据sheet.list.data.name和sheet.list.data.pos,对解析得到的列表项数据进行保存;
[0027]步骤S4:当sheet.list.data.isKey标识为关键数据的列表项数据为空时,判断所有列表项解析完毕,停止对所述列表项的解析;
[0028]步骤S5:判断所述xlsx文件的Sheet是否解析完毕,若否,则跳转至步骤S1,若是,则完成对所述xlsx文件的解析。
[0029]进一步的,采用poi技术或openpyxl技术打开所述xlsx文件。
[0030]进一步的,根据预设的输出规则,以Json字符串的方式输出所述表格文件的解析结果,具体为:
[0031]预设输出规则为以一个列表项包括的全部列表项数据为单位,形成所述表格文件的输出列表;
[0032]将所述输出列表以Json字符串的方式进行输出。
[0033]进一步的,从所述Json字符串中获取业务数据进行业务计算和保存至数据库。
[0034]本专利技术的实施例,具有如下有益效果:
[0035]本专利技术提供了一种表格数据读取方法,该方法通过根据所述配置文件规则编写配置文件,和通过在所述配置文件中建立所述配置文件标签和表格数据之间的对应关系,从而将表格格式信息保存至配置文件中,再通过解析代码读取所述配置文件,从所述配置文件中提取表格的格式信息,再根据提取的格式信息(即表格元素项)对表格文件进行解析,实现了将表格格式与表格数据的解耦,即避免了在解析代码中直接写明表格的格式信息,并避免了直接通过解析代码完成表格数据的全部读取过程。因此,本专利技术通过将表格的格式信息保存至配置文件,再通过解析代码读取所述配置文件并根据提取的格式信息(即表格元素项)对表格文件进行解析,避免在通过解析代码完成表格数据的全部读取过程,进而
当表格格式信息发生变化时,仅通过修改或编写配置文件即可实现对具有新格式的表格文件的读取,而无需修改解析代码。在本领域中,修改配置文件后,重新对表格文件进行读取时,无需重新进行发版等额外的版本发布工作,而现有技术采用直接修改解析代码时,则需要重新进行发版,因此,本专利技术提高了针对需求开发和功能测试的效率,也提高了表格数据的读取效率。同时,由于本专利技术仅需要进行配置文件的编写,无需专业的技术人员进行文件解析代码的开发,在针对大批量不同格式的电子表格内容进行读取时提高了开发工作效率,降低了开发门槛。由于不用将表格读取和后续处理均直接通过解析代码实现,也避免了代码冗余。
附图说明
[0036]图1是本专利技术一实施例提供的表本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种表格数据读取方法,其特征在于,包括以下步骤:对表格文件的表格格式进行分析确定配置文件规则,根据所述配置文件规则编写配置文件;打开所述表格文件,通过解析代码读取所述配置文件,并根据所述配置文件的读取结果对所述表格文件进行解析;根据预设的输出规则,以Json字符串的方式输出所述表格文件的解析结果。2.根据权利要求1所述的表格数据读取方法,其特征在于,对所述表格格式进行分析确定配置文件规则,具体为:通过对所述表格格式进行分析得到表格元素项。3.根据权利要求2所述的表格数据读取方法,其特征在于,根据所述配置文件规则编写配置文件,具体为:通过配置文件标签表示所述表格元素项,并建立所述配置文件标签和表格数据之间的对应关系。4.根据权利要求3所述的表格数据读取方法,其特征在于,所述表格文件为xlsx文件,所述表格元素项具体包括:Sheet名称、非列表项内容的名称、非列表项内容在表格中的位置、列表项的名称、列表项的开始行、列表项数据名称标识、列表项数据位置和列表项数据是否为关键数据。5.根据权利要求4所述的表格数据读取方法,其特征在于,通过解析代码读取所述配置文件,并根据所述配置文件的读取结果对所述表格文件进行解析,具体为:通过Java代码或Python代码读取所述配置文件的标签,并根据读取的所述标签对所述表格文件进行解析。6.根据权利要求5所述的表格数据读取方法,其特征在于,通过配置文件标签表示所述表格元素项,具体为:sheet.name表示所述Sheet名称;sheet.single.name表示所述非列表项内容的名称;sheet.single.pos表示所述非列表项内容在表格中的位置;sheet.list.name表示所述列表项的名称;sheet.list.startRow表示所述列表项的开始行;sheet.list.data.name表示所述列表项数据名称标识;sheet.list.data.p...

【专利技术属性】
技术研发人员:上官玉将惠康李文超陶志强
申请(专利权)人:晋商消费金融股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1