CN110347999A - 一种表格数据校验的方法和装置 - Google Patents
一种表格数据校验的方法和装置 Download PDFInfo
- Publication number
- CN110347999A CN110347999A CN201910647426.9A CN201910647426A CN110347999A CN 110347999 A CN110347999 A CN 110347999A CN 201910647426 A CN201910647426 A CN 201910647426A CN 110347999 A CN110347999 A CN 110347999A
- Authority
- CN
- China
- Prior art keywords
- model object
- list data
- property name
- verification
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000013524 data verification Methods 0.000 title claims abstract description 29
- 238000012795 verification Methods 0.000 claims abstract description 84
- 230000000875 corresponding effect Effects 0.000 claims description 94
- 238000012545 processing Methods 0.000 claims description 7
- 238000012937 correction Methods 0.000 claims description 5
- 238000007792 addition Methods 0.000 abstract description 13
- 238000012217 deletion Methods 0.000 abstract description 8
- 230000037430 deletion Effects 0.000 abstract description 8
- 238000011161 development Methods 0.000 abstract description 7
- 230000008676 import Effects 0.000 abstract description 7
- 210000004027 cell Anatomy 0.000 description 28
- 230000008859 change Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 235000006719 Cassia obtusifolia Nutrition 0.000 description 1
- 235000014552 Cassia tora Nutrition 0.000 description 1
- 244000201986 Cassia tora Species 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 210000004460 N cell Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/177—Editing, e.g. inserting or deleting of tables; using ruled lines
- G06F40/18—Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种表格数据校验的方法和装置,所述方法通过获取表格数据;基于所述表格数据,创建模型对象,所述模型对象包括与所述表格数据对应的属性名称;为所述模型对象中的属性名称添加注解,当表格数据变动后,只需要增删模型对象中各个属性名称上的注解,根据所述注解确定对应的校验规则;根据所述模型对象中属性名称的注解对应的校验规则,校验所述表格数据。无需修改表格数据导入导出的核心代码逻辑,降低了表格数据校验开发中的工作量,节省了开发成本。
Description
技术领域
本申请涉及数据处理技术领域,特别涉及一种表格数据校验的方法和装置、计算设备及计算机可读存储介质。
背景技术
随着信息技术的发展,越来越多的数据以Excel文档的形式存储,将Excel中数据导入到Web系统或者将Web系统中的数据导出到Excel中已成为十分普遍的需求。
Excel中数据的导入导出过程中需要对数据的完整性和准确性进行校验。现有基于POI的Excel数据导入导出方案,对表格数据的完整性和准确性校验以代码的形式耦合在关键业务逻辑中,即表格数据的校验规则以硬编码的形式写死在代码中,而导入导出的表格数据会发生频繁的变动,只要表格数据发生变化后,原先校验规则的编码便无法继续使用,需要人工修改关键逻辑代码以实现表格数据的校验,大幅增加了工作量,提高了人工成本,给表格数据导入导出带来不便。
发明内容
有鉴于此,本申请实施例提供了一种表格数据校验的方法和装置、计算设备及计算机可读存储介质,以解决现有技术中存在的技术缺陷。
本申请实施例公开了一种表格数据校验的方法,包括:
获取表格数据;
基于所述表格数据,创建模型对象,所述模型对象包括与所述表格数据对应的属性名称;
为所述模型对象中的属性名称添加注解,并根据所述注解确定对应的校验规则;
根据所述模型对象中属性名称的注解对应的校验规则,校验所述表格数据。
本申请实施例还公开了一种表格数据校验的装置,包括:
获取模块,被配置为获取表格数据;
创建模块,被配置为基于所述表格数据,创建模型对象,所述模型对象包括与所述表格数据对应的属性名称;
处理模块,被配置为所述模型对象中的属性名称添加注解,并根据所述注解确定对应的校验规则;
校验模块,被配置为根据所述模型对象中属性名称的注解对应的校验规则,校验所述表格数据。
本申请实施例公开了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现如上所述表格数据校验的方法的步骤。
本申请实施例公开了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如上所述表格数据校验的方法的步骤。
本申请提供的一种表格数据校验的方法和装置,通过获取表格数据;基于所述表格数据,创建模型对象,所述模型对象包括与所述表格数据对应的属性名称;为所述模型对象中的属性名称添加注解,当表格数据变动后,只需要增删模型对象中各个属性名称上的注解,根据所述注解确定对应的校验规则;根据所述模型对象中属性名称的注解对应的校验规则,校验所述表格数据。无需修改表格数据导入导出的核心代码逻辑,降低了表格数据校验开发中的工作量,节省了开发成本,进而方便了表格数据的导入导出。
附图说明
图1是本申请实施例的计算设备的结构示意图;
图2是本申请一实施例的表格数据校验方法的流程示意图;
图3是本申请表格数据校验的方法中创建模型对象的流程示意图;
图4是本申请表格数据校验的方法中根据所述注解确定对应的校验规则的流程示意图;
图5是本申请一实施例表格数据校验的方法的流程示意图;
图6是本申请实施例的表格数据校验的装置结构示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本发明一个或多个实施例涉及的名词术语进行解释。
全球广域网(WorldWide Web,简称web)系统:基于超文本和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统。
POI(Poor Obfuscation Implementation,简称POI):Apache的开源项目,提供API给Java程序对Microsoft Office格式档案进行读写操作。
模型对象:与表格数据对应的JavaBean对象,即表格的每一列都有模型对象中某个属性与之对应。
Java反射机制:在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。
Map:是STL的一个关联容器,提供一对一的数据处理能力,即能够存储每个键key对应一个值value。
在本申请中,提供了一种表格数据校验的方法和装置、计算设备及计算机可读存储介质,在下面的实施例中逐一进行详细说明。
图1是示出了根据本说明书一实施例的计算设备100的结构框图。该计算设备100的部件包括但不限于存储器110和处理器120。处理器120与存储器110通过总线130相连接,数据库150用于保存数据。
计算设备100还包括接入设备140,接入设备140使得计算设备100能够经由一个或多个网络160通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备140可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本说明书的一个实施例中,计算设备100的上述部件以及图1中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图1所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备100还可以是移动式或静止式的服务器。
其中,处理器120可以执行图2所示方法中的步骤。图2是示出了根据本申请一实施例的表格数据校验的方法的示意性流程图,包括步骤202至步骤208。
步骤202:获取表格数据。
所述表格数据可以是文档中的表格数据,也可以是电子表格数据,即Excel中的表格数据,下面以表1为例对下述步骤进行说明,表1示出的为获取文档中的表格数据。
表1
姓名 | 年龄 | 性别 |
李强 | 16 | 男 |
张梅 | 17 | 女 |
表1中“李强”、“16”和“男”表示一个学生的信息,“张梅”、“17”和“女”表示另一个学生的信息。
步骤204:基于所述表格数据,创建模型对象,所述模型对象包括与所述表格数据对应的属性名称。
参见图3所示,所述步骤204包括步骤302至步骤304。
步骤302:根据所述表格数据中的字段,确定与所述字段对应的属性名称。
下面以表1为例对字段以及字段值的概念进行说明,第一行中三个字段分别为“姓名”、“年龄”和“性别”,字段“姓名”对应的字段值为其所在列中的“李强”和“张梅”;字段“年龄”对应的字段值为其所在列中的“16”与“17”;字段“性别”对应的字段值为其所在列中的“男”与“女”。
根据所述表格数据中的字段“姓名”确定的属性名称为“name”;根据所述表格数据中的字段“年龄”确定的属性名称为“age”;根据所述表格数据中的字段“性别”确定的属性名称为“sex”。
步骤304:基于所述字段对应的属性名称,生成模型对象。
以表1给出的表格数据为例,具体生成的模型对象如下所示。
public class PersonInfoExcelPO implements Serializable{
private String name;
private Integer age;
private String sex;
}
步骤206:为所述模型对象中的属性名称添加注解,并根据所述注解确定对应的校验规则。
参见图4所示,所述步骤206包括步骤402至步骤408。
步骤402:根据所述模型对象中的属性名称,确定所述模型对象中的属性名称对应的注解。
上述根据所述模型对象中的属性名称“name”,比如确定所述模型对象中的属性名称对应的注解为@ExcelField(sort=1,name="姓名",nullable=false)。
需要说明的是,上述注解是根据表格数据的实际情况进行定义的,确定所述模型对象中的属性名称对应的注解为一个或两个以上。
上述根据所述模型对象中的属性名称“age”,定义所述模型对象中的属性名称对应的注解为@ExcelField(sort=2,name="年龄",nullable=false)以及@Range(min=1,max=120)。
上述根据所述模型对象中的属性名称“sex”,确定所述模型对象中的属性名称对应的注解为@ExcelField(sort=3,name="性别",nullable=false)。
步骤404:将所述模型对象中的属性名称对应的注解添加至所述模型对象中的所述属性名称。
添加注解后的模型对象具体如下。
public class PersonInfoExcelPO implements Serializable{
@ExcelField(sort=1,name="姓名",nullable=false)
private String name;
@ExcelField(sort=2,name="年龄",nullable=false)
@Range(min=1,max=120)
private Integer age;
@ExcelField(sort=3,name="性别",nullable=false)
private String sex;
}
步骤406:解析所述模型对象中属性名称对应的注解。
利用Java反射机制,解析所述模型对象各个属性上添加的注解。
步骤408:存储所述模型对象中每个属性名称以及每个属性名称对应的校验规则并生成校验集。
以Map的形式存储,其中该Map的key为模型对象的属性名称,Map的value为该属性需要满足的校验规则。以Map的形式存储模型对象中每个属性名称以及每个属性名称对应的校验规则,生成校验集。
这样对其它表格数据进行校验,只需要增删模型对象中的注解,或直接更改模型对象中的注解,无需重复定义相同的注解,进一步减少表格数据校验的开发工作量,进一步降低开发成本。
步骤208:根据所述模型对象中属性名称的注解对应的校验规则,校验所述表格数据。
比如所述模型对象中属性名称“name”的注解“@ExcelField(sort=1,name="姓名",nullable=false)”,其对应的校验规则为位于表格数据的第一列,该列的标题必须为“姓名”,该列数据不允许为空。
所述模型对象中属性名称“age”的第一个注解“@ExcelField(sort=2,name="年龄",nullable=false)”,其对应的校验规则为位于表格数据的第二列,该列的标题必须为“年龄”,该列数据不允许为空;
所述模型对象中属性名称“age”的第二个注解“@Range(min=1,max=120)”,其对应的校验规则为该列数据的取值范围必须为1~120之间。
所述模型对象中属性名称“sex”的第一个注解“@ExcelField(sort=3,name="性别",nullable=false)”,其对应的校验规则为位于表格数据的第三列,该列的标题必须为“性别”,该列数据不允许为空。
对表格数据中的每一列进行校验,将符合所述校验规则的表格数据对应写入模型对象中,完成表格数据的校验。
本申请上述实施例通过获取表格数据;基于所述表格数据,创建模型对象,所述模型对象包括与所述表格数据对应的属性名称;为所述模型对象中的属性名称添加注解,当表格数据变动后,只需要增删或更改模型对象中各个属性名称上的注解,根据所述注解确定对应的校验规则;根据所述模型对象中属性名称的注解对应的校验规则,校验所述表格数据。无需修改表格数据导入导出的核心代码逻辑,降低了表格数据校验开发中的工作量,节省了开发成本。
图5示出了本申请一实施例的表格数据校验的方法的流程示意图,具体包括步骤502至步骤516。
步骤502:读取所述表格数据中第i个单元格数据,所述电子表格数据包括n个单元格数据,其中1≤i≤n。
基于POI提供的接口读取表格数据中一个单元格的数据。
步骤504:确定第i个单元格数据对应的所述模型对象中的属性名称作为目标属性名称。
步骤506:查找所述校验集中与所述目标属性名称一致的属性名称,获取所述校验集中与所述目标属性名称一致的属性名称对应的校验规则。
以Map的形式存储对象中每个属性名称以及每个属性名称对应的校验规则,生成校验集,直接在校验集中查找与所述目标属性名称一致的属性名称,来获取单元格的数据对应的校验规则。
步骤508:判断第i个单元格数据是否符合校验规则;若是,执行步骤510,若否,执行步骤516。
步骤510:将所述单元格数据对应写入模型对象中。
将单元格数据写入模型对象中与单元格数据对应的属性名称下。
步骤512:将i自增1,判断自增1后的i是否大于n,若是,执行步骤514;若否,执行步骤502。
步骤514:完成表格数据的校验。
即表格数据中每个单元格的数据均符合其对应的校验规则,所有单元格数据均写入模型对象中,需要表格数据的导入导出,能够直接根据模型对象将表格数据进行导入或导出。
步骤516:返回不符合所述校验规则的单元格数据对应的单元格,生成所述单元格数据对应的单元格校验失败的原因。
只要出现不符合所述校验规则的单元格数据,终止下一个单元格的校验,分析所述单元格数据对应的单元格校验失败的原因。
本申请上述实施例通过为所述模型对象中的属性名称添加注解,当表格数据变动后,只需要增删或更改模型对象中各个属性名称上的注解,根据所述注解确定对应的校验规则;根据所述模型对象中属性名称的注解对应的校验规则,校验所述表格数据。无需修改表格数据导入导出的核心代码逻辑,降低了表格数据校验开发中的工作量,节省了开发成本,进而方便了后续表格数据的导入导出。
下面通过具体举例来进一步说明本申请的技术方案带来的技术效果。
假设先是获取表2的表格数据,对表2中的数据进行校验。
表2
姓名 | 出生日期 | 联系方式 |
张三 | 1994-09-27 | 128****8980 |
赵四 | 1995-10-26 | 186****7276 |
根据所述表格数据中的字段“姓名”确定的属性名称为“name”;根据所述表格数据中的字段“出生日期”确定的属性名称为“birthday”;根据所述表格数据中的字段“联系方式”确定的属性名称为“phoneNo”。
具体生成的模型对象如下所示。
public class PersonInfoExcelPO implements Serializable{
private String name;
private Integerbirthday;
private StringphoneNo;
}
添加注解后的模型对象具体如下。
public class PersonInfoExcelPO implements Serializable{
@ExcelField(sort=1,name="姓名",nullable=false)
private String name;
@ExcelField(sort=2,name="出生日期",nullable=false)
@ExcelDate(format="yyyy-MM-dd")
private Integerbirthday;
@ExcelField(sort=3,name="联系方式",nullable=false)
@ExcelValid(regexp="^[1]([3-9])[0-9]{9}$")
private String phoneNo;
}
利用Java反射机制,解析所述模型对象各个属性上添加的注解,并以Map的形式存储。
根据所述模型对象中属性名称的注解对应的校验规则,校验所述表格数据。
所述模型对象中属性名称“name”的注解“@ExcelField(sort=1,name="姓名",nullable=false)”,其对应的校验规则为位于表格数据的第一列,该列的标题必须为“姓名”,该列数据不允许为空。
所述模型对象中属性名称“birthday”的第一个注解“@ExcelField(sort=2name="出生日期",nullable=false)”,其对应的校验规则为位于表格数据的第二列,该列的标题必须为“出生日期”,该列数据不允许为空;
所述模型对象中属性名称“birthday”的第二个注解“@ExcelDate(format="yyyy-MM-dd")”,其对应的校验规则为该列数据必须为日期类型,并且日期的格式为yyyy-MM-dd。
所述模型对象中属性名称“phoneNo”的第一个注解“@ExcelField(sort=3,name="联系方式",nullable=false)”,其对应的校验规则为位于表格数据的第三列,该列的标题必须为“联系方式”,该列数据不允许为空;
所述模型对象中属性名称“phoneNo”的第二个注解“@ExcelValid(regexp="^[1]([3-9])[0-9]{9}$")”,其对应的校验规则该列数据为数字"1"开头,第二位为"3~9"中任意数字,第三位到第十一位为"0~9"中的任意数字。表2中的第二行第三列的数据“128****8980”不符合校验规则。
基于POI提供的接口读取表格数据中一个单元格的数据,确定单元格数据对应的所述模型对象中的属性名称作为目标属性名称。查找所述校验集中与所述目标属性名称一致的属性名称,获取所述校验集中与所述目标属性名称一致的属性名称对应的校验规则,对表格数据中单元格的数据进行校验,以此类推,完成表2中所有单元格数据的校验。
上述完成表2中数据的校验后,需要对获取的表3中的表格数据进行校验。
表3
姓名 | 年龄 | 出生日期 | 联系方式 |
张三 | 25 | 1994/09/27 | 128****8980 |
赵四 | 24 | 186****7276 |
直接根据表2创建的添加注解后进行修改后的模型对象具体如下。
public class PersonInfoExcelPO implements Serializable{
@ExcelField(sort=1,name="姓名",nullable=false)
private String name;
@ExcelField(sort=2,name="年龄",nullable=false)
@Range(min=1,max=100)
private Integer age;
@ExcelField(sort=3,name="出生日期",nullable=true)
@ExcelDate(format="yyyy/MM/dd")
private Integerbirthday;
@ExcelField(sort=4,name="联系方式",nullable=false)
@ExcelValid(regexp="^[1]([2-9])[0-9]{9}$")
private String phoneNo;
}
对表3中的数据进行校验时,相较于表2的模型对象,具体作为了下述修改。
增加了属性名称“age”对应的注解@ExcelField(sort=2,name="年龄",nullable=false)和@Range(min=1,max=100)。
将原来属性名称“birthday”对应的注解由@ExcelDate(format="yyyy-MM-dd")修改为@ExcelDate(format="yyyy/MM/dd"),即仅是将“yyyy-MM-dd”修改为“yyyy/MM/dd”。
将原来的注解@ExcelField(sort=2,name="出生日期",nullable=false)修改为@ExcelField(sort=3,name="出生日期",nullable=true),即仅是将“false”修改为“true”。属性名称“birthday”对应的校验规则更改为该列数据可以为空。
将原来属性名称“phoneNo”对应的注解@ExcelValid(regexp="^[1]([3-9])[0-9]{9}$")修改为@ExcelValid(regexp="^[1]([2-9])[0-9]{9}$"),即仅是将“[1]([3-9])[0-9]”修改为“[1]([2-9])[0-9]”。属性名称“phoneNo”对应的校验规则更改后,则表3中的第二行第四列的数据“128****8980”符合校验规则。
关于后续表格数据的校验参见上述实施例,此处不再赘述。
由上可知,本申请变换表格数据进行校验时,模型对象中代码是直接生成的,对于工程师来说仅需要增删或更改注解,增删或更改注解带来的工作量小,无需修改后续表格数据导入导出的核心代码逻辑,上述仅是示意性地给出了四列单元格,实际的表格数据校验一种表格数据会有很多列,实际处理中,本申请提供的技术方案能够明显降低表格数据校验开发中的工作量,大大节省了开发成本。
参见图6所示,本申请提供一种表格数据校验的装置,包括:
获取模块602,被配置为获取表格数据;
创建模块604,被配置为基于所述表格数据,创建模型对象,所述模型对象包括与所述表格数据对应的属性名称;
处理模块606,被配置为为所述模型对象中的属性名称添加注解,并根据所述注解确定对应的校验规则;
校验模块608,被配置为根据所述模型对象中属性名称的注解对应的校验规则,校验所述表格数据。
所述创建模块604,被进一步配置为根据所述表格数据中的字段,确定与所述字段对应的属性名称;
基于所述字段对应的属性名称,生成模型对象。
优选地,所述处理模块606,被进一步配置为根据所述模型对象中的属性名称,确定所述模型对象中的属性名称对应的注解,将所述模型对象中的属性名称对应的注解添加至所述属性名称。
优选地,所述处理模块606,还被配置为解析所述模型对象中属性名称对应的注解,存储所述模型对象中每个属性名称以及每个属性名称对应的校验规则并生成校验集。
优选地,所述校验模块608包括:
读取单元,被配置为读取所述表格数据中第i个单元格数据,所述电子表格数据包括n个单元格数据,其中1≤i≤n;
确定单元,被配置为确定第i个单元格数据对应的所述模型对象中的属性名称作为目标属性名称;
处理单元,被配置为查找所述校验集中与所述目标属性名称一致的属性名称,获取所述校验集中与所述目标属性名称一致的属性名称对应的校验规则;
写入单元,被配置为将符合校验规则的第i个单元格数据对应写入模型对象中;
自增单元,被配置为将i自增1,判断自增1后的i是否大于n,若是,完成表格数据的校验;若否,执行读取单元。
优选地,所述校验模块608还被配置为若所述单元格数据不符合校验规则,返回不符合所述校验规则的单元格数据对应的单元格,生成所述单元格数据对应的单元格校验失败的原因。
优选地,所述装置还包括:导入导出模块,被配置为将所述模型对象中的表格数据导出;或将所述模型对象中的表格数据导入至电子表格中。
本申请上述实施例通过为所述模型对象中的属性名称添加注解,当表格数据变动后,只需要增删或更改模型对象中各个属性名称上的注解,根据所述注解确定对应的校验规则;根据所述模型对象中属性名称的注解对应的校验规则,校验所述表格数据。无需修改表格数据导入导出的核心代码逻辑,降低了表格数据校验开发中的工作量,节省了开发成本,进而方便了表格数据的导入导出。
本申请一实施例还提供一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现如前所述表格数据校验的方法的步骤。
本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如前所述表格数据校验的方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述表格数据校验的方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述表格数据校验的方法的技术方案的描述。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。
Claims (10)
1.一种表格数据校验的方法,其特征在于,包括:
获取表格数据;
基于所述表格数据,创建模型对象,所述模型对象包括与所述表格数据对应的属性名称;
为所述模型对象中的属性名称添加注解,并根据所述注解确定对应的校验规则;
根据所述模型对象中属性名称的注解对应的校验规则,校验所述表格数据。
2.根据权利要求1所述的方法,其特征在于,基于所述表格数据,创建模型对象,包括:
根据所述表格数据中的字段,确定与所述字段对应的属性名称;
基于所述字段对应的属性名称,生成模型对象。
3.根据权利要求1所述的方法,其特征在于,为所述模型对象中的属性名称添加注解,包括:
根据所述模型对象中的属性名称,确定所述模型对象中的属性名称对应的注解;
将所述模型对象中的属性名称对应的注解添加至所述属性名称。
4.根据权利要求1至3任一项所述的方法,其特征在于,根据所述注解确定对应的校验规则,还包括:
解析所述模型对象中属性名称对应的注解;
存储所述模型对象中每个属性名称以及每个属性名称对应的校验规则并生成校验集。
5.根据权利要求4所述的方法,其特征在于,根据所述模型对象中属性名称的注解对应的校验规则,校验所述表格数据,包括:
S501:读取所述表格数据中第i个单元格数据,所述电子表格数据包括n个单元格数据,其中1≤i≤n;
S502:确定第i个单元格数据对应的所述模型对象中的属性名称作为目标属性名称;
S503:查找所述校验集中与所述目标属性名称一致的属性名称,获取所述校验集中与所述目标属性名称一致的属性名称对应的校验规则;
S504:将符合校验规则的第i个单元格数据对应写入模型对象中;
S505:将i自增1,判断自增1后的i是否大于n,若是,完成表格数据的校验;若否,执行S501。
6.根据权利要求5所述的方法,其特征在于,还包括:
若所述单元格数据不符合校验规则,返回不符合所述校验规则的单元格数据对应的单元格;
生成所述单元格数据对应的单元格校验失败的原因。
7.根据权利要求5所述的方法,其特征在于,完成表格数据的校验之后,还包括:
将所述模型对象中的表格数据导出;或将所述模型对象中的表格数据导入至电子表格中。
8.一种表格数据校验的装置,其特征在于,包括:
获取模块,被配置为获取表格数据;
创建模块,被配置为基于所述表格数据,创建模型对象,所述模型对象包括与所述表格数据对应的属性名称;
处理模块,被配置为为所述模型对象中的属性名称添加注解,并根据所述注解确定对应的校验规则;
校验模块,被配置为根据所述模型对象中属性名称的注解对应的校验规则,校验所述表格数据。
9.一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,其特征在于,所述处理器执行所述指令时实现权利要求1-7任意一项所述方法的步骤。
10.一种计算机可读存储介质,其存储有计算机指令,其特征在于,该指令被处理器执行时实现权利要求1-7任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910647426.9A CN110347999A (zh) | 2019-07-17 | 2019-07-17 | 一种表格数据校验的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910647426.9A CN110347999A (zh) | 2019-07-17 | 2019-07-17 | 一种表格数据校验的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110347999A true CN110347999A (zh) | 2019-10-18 |
Family
ID=68176640
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910647426.9A Pending CN110347999A (zh) | 2019-07-17 | 2019-07-17 | 一种表格数据校验的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110347999A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111339137A (zh) * | 2020-02-19 | 2020-06-26 | 北京奇艺世纪科技有限公司 | 一种数据校验方法及装置 |
CN111367976A (zh) * | 2020-02-28 | 2020-07-03 | 平安医疗健康管理股份有限公司 | 基于java反射机制的excel文件数据的导出方法及装置 |
CN111476009A (zh) * | 2020-03-23 | 2020-07-31 | 一汽奔腾轿车有限公司 | 一种新车报税配置信息一致性校验系统 |
CN111475331A (zh) * | 2020-03-24 | 2020-07-31 | 平安银行股份有限公司 | 数据校验方法、装置、计算机设备和存储介质 |
CN112767171A (zh) * | 2021-01-18 | 2021-05-07 | 中国工商银行股份有限公司 | 理财产品属性校验方法及装置 |
CN114936248A (zh) * | 2022-06-21 | 2022-08-23 | 国网电商科技有限公司 | 一种数据导出方法、装置、设备及存储介质 |
CN115130443A (zh) * | 2022-06-28 | 2022-09-30 | 飞鸟鱼信息科技有限公司 | 表格数据处理方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106991023A (zh) * | 2017-03-22 | 2017-07-28 | 深圳市彬讯科技有限公司 | 一种接口参数校验方法及组件 |
CN107943462A (zh) * | 2017-12-15 | 2018-04-20 | 政采云有限公司 | 针对java中的excel数据的处理方法和云端数据交互方法 |
CN108763185A (zh) * | 2018-05-31 | 2018-11-06 | 苏州市计量测试院 | Excel文件的校验方法及系统 |
-
2019
- 2019-07-17 CN CN201910647426.9A patent/CN110347999A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106991023A (zh) * | 2017-03-22 | 2017-07-28 | 深圳市彬讯科技有限公司 | 一种接口参数校验方法及组件 |
CN107943462A (zh) * | 2017-12-15 | 2018-04-20 | 政采云有限公司 | 针对java中的excel数据的处理方法和云端数据交互方法 |
CN108763185A (zh) * | 2018-05-31 | 2018-11-06 | 苏州市计量测试院 | Excel文件的校验方法及系统 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111339137A (zh) * | 2020-02-19 | 2020-06-26 | 北京奇艺世纪科技有限公司 | 一种数据校验方法及装置 |
CN111367976A (zh) * | 2020-02-28 | 2020-07-03 | 平安医疗健康管理股份有限公司 | 基于java反射机制的excel文件数据的导出方法及装置 |
CN111476009A (zh) * | 2020-03-23 | 2020-07-31 | 一汽奔腾轿车有限公司 | 一种新车报税配置信息一致性校验系统 |
CN111475331A (zh) * | 2020-03-24 | 2020-07-31 | 平安银行股份有限公司 | 数据校验方法、装置、计算机设备和存储介质 |
CN111475331B (zh) * | 2020-03-24 | 2024-09-24 | 平安银行股份有限公司 | 数据校验方法、装置、计算机设备和存储介质 |
CN112767171A (zh) * | 2021-01-18 | 2021-05-07 | 中国工商银行股份有限公司 | 理财产品属性校验方法及装置 |
CN112767171B (zh) * | 2021-01-18 | 2024-02-02 | 中国工商银行股份有限公司 | 理财产品属性校验方法及装置 |
CN114936248A (zh) * | 2022-06-21 | 2022-08-23 | 国网电商科技有限公司 | 一种数据导出方法、装置、设备及存储介质 |
CN115130443A (zh) * | 2022-06-28 | 2022-09-30 | 飞鸟鱼信息科技有限公司 | 表格数据处理方法、装置、电子设备及存储介质 |
CN115130443B (zh) * | 2022-06-28 | 2024-10-18 | 飞鸟鱼信息科技有限公司 | 表格数据处理方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110347999A (zh) | 一种表格数据校验的方法和装置 | |
CN111125331B (zh) | 语义识别方法、装置、电子设备及计算机可读存储介质 | |
CN104899304B (zh) | 命名实体识别方法及装置 | |
JP2021089705A (ja) | 翻訳品質を評価するための方法と装置 | |
US11373047B2 (en) | Method, system, and computer program for artificial intelligence answer | |
CN110119473A (zh) | 一种目标文件知识图谱的构建方法及装置 | |
CN107491547A (zh) | 基于人工智能的搜索方法和装置 | |
Hoch et al. | Geolinguistics: The incorporation of geographic information systems and science | |
CN111353033B (zh) | 一种训练文本相似度模型的方法和系统 | |
CN110070359A (zh) | 基于区块链的数据核对系统、方法、计算设备及存储介质 | |
CN107545044A (zh) | 一种数据表建立方法、电子设备及存储介质 | |
CN107861954A (zh) | 基于人工智能的信息输出方法和装置 | |
CN110176237A (zh) | 一种语音识别方法及装置 | |
CN110209802A (zh) | 一种提取摘要文本的方法及装置 | |
CN117112593A (zh) | Sql语句生成方法、介质和计算机设备 | |
CN103678371B (zh) | 词库更新装置、数据整合装置和方法以及电子设备 | |
CN110188250A (zh) | 一种查询语句的生成方法及装置 | |
US20220198153A1 (en) | Model training | |
CN116796730A (zh) | 基于人工智能的文本纠错方法、装置、设备及存储介质 | |
CN116933800B (zh) | 一种基于模版的生成式意图识别方法及装置 | |
Goretzko et al. | The comparison data forest: A new comparison data approach to determine the number of factors in exploratory factor analysis | |
CN110020196A (zh) | 一种基于不同数据源的用户分析方法和装置及计算设备 | |
CN111597336A (zh) | 训练文本的处理方法、装置、电子设备及可读存储介质 | |
CN110991661A (zh) | 用于生成模型的方法和装置 | |
CN104111917A (zh) | 数据处理装置、数据处理方法以及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191018 |
|
RJ01 | Rejection of invention patent application after publication |