CN113626593B - 一种Excel文件校验方法、装置及设备 - Google Patents
一种Excel文件校验方法、装置及设备 Download PDFInfo
- Publication number
- CN113626593B CN113626593B CN202110788918.7A CN202110788918A CN113626593B CN 113626593 B CN113626593 B CN 113626593B CN 202110788918 A CN202110788918 A CN 202110788918A CN 113626593 B CN113626593 B CN 113626593B
- Authority
- CN
- China
- Prior art keywords
- character string
- array
- character
- string array
- error information
- 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.)
- Active
Links
- 238000012795 verification Methods 0.000 title claims abstract description 87
- 238000000034 method Methods 0.000 title claims abstract description 45
- 230000011218 segmentation Effects 0.000 claims abstract description 33
- 238000012545 processing Methods 0.000 claims abstract description 23
- 230000006870 function Effects 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 20
- 238000003379 elimination reaction Methods 0.000 claims description 2
- 230000008030 elimination Effects 0.000 claims 1
- 230000008569 process Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 230000010365 information processing Effects 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Machine Translation (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种Excel文件校验方法、装置及设备,涉及信息技术领域,能够实现精准地定位单元格中不同的错误内容,提高排课管理的管理效率。该方法包括:通过获取Excel文件并通过POI协议解析所述Excel文件,确定所述Excel文件中符合预设规则的单元格,所述预设规则为指定需要填写分隔符的单元格;再获取所述单元格的第一文本信息,并在所述第一文本信息的末尾添加标识符a,得到第二文本信息;调用第一字符串分割函数,对所述第二文本信息进行分割处理,得到第一字符串数组;对所述第一字符串数组进行字符串校验,根据校验结果确定所述单元格对应的错误信息。
Description
技术领域
本申请涉及信息推荐技术领域,尤其涉及一种Excel文件校验方法、装置及设备。
背景技术
排课管理是高校教学管理信息化的一个重要组成部分,涉及到与排课相关的课程资源、教师资源、教室资源、上课班级、上课时间等多方面的资源的合理调配。基于B/S架构的排课管理系统,涉及到基础课程资源的录入,对于同一门课程是可以由多个不同任课老师进行授课。所以在逐条录入课程信息时可以选择多个任课教师进行录入提交。但是针对学校存在的丰富多样的课程资源,逐条录入效率比较低,使用系统提供的Excel模板按照一定规则将课程资源信息导入到系统中是很必要的。
然而,由于Excel文件是由用户随意填写录入,比如对于任课教师这一列的填写要求“最多输入10位任课教师,并以逗号作分隔”就会存在多种输入的可能性,系统在解析这种Excel数据列含有特定分隔符约定的文本内容时,有可能不能精确地定位用户填写内容是否正确,是否包含错误分隔导致无法定位错误信息。
发明内容
本申请实施例提供了一种Excel文件校验方法、装置及设备,能够实现精准地定位单元格中不同的错误内容,提高排课管理的管理效率。
第一方面,本申请提供一种Excel文件校验方法,包括:
获取Excel文件并通过POI协议解析所述Excel文件,确定所述Excel文件中符合预设规则的单元格,所述预设规则为指定需要填写分隔符的单元格;
获取所述单元格的第一文本信息,并在所述第一文本信息的末尾添加标识符a,得到第二文本信息;
调用第一字符串分割函数,对所述第二文本信息进行分割处理,得到第一字符串数组;
对所述第一字符串数组进行字符串校验,根据校验结果确定所述单元格对应的错误信息。
第二方面,本申请提供一种Excel文件校验装置,包括:
Excel文件解析单元,用于获取Excel文件并通过POI协议解析所述Excel文件,确定所述Excel文件中符合预设规则的单元格,所述预设规则为指定需要填写分隔符的单元格;
文本信息处理单元,用于获取所述单元格的第一文本信息,并在所述第一文本信息的末尾添加标识符a,得到第二文本信息;
字符串分割单元,用于调用第一字符串分割函数,对所述第二文本信息进行分割处理,得到第一字符串数组;
字符串校验单元,用于对所述第一字符串数组进行字符串校验,根据校验结果确定所述单元格对应的错误信息。
第三方面,本申请提供一种Excel文件校验设备,包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面或第一方面的任意可选方式所述的方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面或第一方面的任意可选方式所述的方法。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在Excel文件校验设备上运行时,使得Excel文件校验设备执行上述第一方面所述的Excel文件校验方法的步骤。
可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种Excel文件校验方法的流程示意图;
图2是本申请实施例提供一种字符串组数的调整方法的流程示意图;
图3是本申请实施例提供的一种字符串存储方法的流程示意图;
图4是本申请实施例提供的一种Excel文件校验装置的结构示意图;
图5是本申请实施例提供的一种Excel文件校验设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
还应当理解,在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
排课管理系统在解析Excel数据列中含有特定分隔符的约定文本内容时,需要进行特殊判断校验处理,校验Excel数据的有效性和合法性,精确定位单元格的错误内容,以便于用户进行修改。
请参见图1,图1是本申请实施例提供的一种Excel文件校验方法的流程示意图,详述如下:
步骤S101,获取Excel文件并通过POI协议解析所述Excel文件,确定所述Excel文件中符合预设规则的单元格。
在本申请实施例中,当用户从排课管理系统中下载Excel文件,并填写课程和任课教师信息后,将填写好相关信息的Excel文件上传至排课管理系统中,排课管理系统在获取到用户上传的Excel文件时,通过POI协议逐行解析该Excel文件,确定该Excel文件中是否存在符合预设规则的单元格,当在确定该Excel文件中存在符合预设规则的单元格时,进行后续的校验步骤。
在本申请实施例中,预设规则具体为指定需要填写分隔符的单元格,即Excel文件中的某一单元格为指定需要填写分隔符的单元格,比如排课管理系统中用于输入多位任课教师的名字的单元格,在输入一位任课教师的名字后,需要使用分隔符进行分隔,之后再输入另一位任课教师的名字。
需要说明的是,分隔符为用于分隔两个不同字符串数据的符号,比如逗号、顿号、分号等等。
在本申请的一些实施例中,指定需要填写分隔符的单元格中,所填写的分隔符为指定的分隔符,比如,某一单元格的分隔符为逗号,那么其他符号比如顿号、分号等不能视之为分隔符。
在本申请的另一些实施例中,指定需要填写分隔符的单元格中,分隔符至少为两种不同的符号,比如逗号和分号,或者逗号、分号和顿号。
步骤S102,获取所述单元格的第一文本信息,并在所述第一文本信息的末尾添加标识符a,得到第二文本信息。
在本申请实施例中,在解析到Excel文件中符合预设规则的单元格时,获取该单元格的文本信息,为了便于后续的Excel文件校验处理,在所获取到的文本信息的末尾添加标识符a,得到另一文本信息,为便于区分这两个文本信息,将直接获取到的单元格的文本信息称为第一文本信息,在第一文本信息的末尾添加标识符a的文本信息称为第二文本信息。
需要说明的是,标识符也可以是除了字母a之外的任意一个字母或几个字母的组合,这里对标识符不做具体限定。
步骤S103,调用第一字符串分割函数,对所述第二文本信息进行分割处理,得到第一字符串数组。
在本申请实施例中,在获取到第二文本信息后,调用第一字符串分割函数split(),对该第二文本信息进行分割处理,得到第一字符串数组。
需要说明的是,本申请实施例中的第一字符串分割函数split()中使用的分割字符为分隔符比如逗号,顿号,分号等等。
示例性的,当分隔符为逗号时,字符串分割函数split()为.split(",")。
步骤S104,对所述第一字符串数组进行字符串校验,根据校验结果确定所述单元格对应的错误信息。
在本申请实施例中,对分割得到的第一字符串数组进行字符串校验,主要是根据校验结果确定单元格最终对应的错误类型,生成相应的错误信息。
示例性的,由于用户输入单元格中的内容随意性较大,分隔符与分隔符之间的数据不一定存在,比如,用户在某一单元格中填写的内容可能是“教师1,教师2,教师3,,,,,”,这时,如果采用简单的字符串分割处理,获取到的字符串数组的长度与实际分割得到字符串数组的长度存在一定的出入,实际分割得到字符串数组应该是[教师1,教师2,教师3,,,,,],长度为8。而采用简单的字符串分割处理得到的字符串数组为[教师1,教师2,教师3],长度为3。而当用户在某一单元格中填写的内容是“教师1,教师2,教师3”时,分割所得到的字符串数组也是[教师1,教师2,教师3],这时,由于现有的对单元格中含有分隔符的文本消息仅是进行简单的字符串分割处理,判断分割后的字符串数组的长度与单元格可填写的个数进行比对,因此无法精确定位用户在单元格内填写的内容正确与否,是否包含有错误分隔或者其他错误情况。
为了精确定位用户在单元格内填写的内容正确与否,是否包含有错误分隔等情况,本申请实施例通过在获取到的单元格的文本信息的末尾添加标识符a,再通过调用第一字符串分割函数,对添加标识符a之后的文本信息进行分割处理,得到字符串数组,再对分割得到的字符串数组进行字符串校验,以便于根据校验结果确定该单元格对应的信息错误,实现对单元格的错误内容的精准定位。
示例性的,单元格对应的错误信息包括但不限于第一错误信息、第二错误信息、第三错误信息、第四错误信息等等。
其中,第一错误信息用于提示单元格内填写的内容为空;第二错误信息用于提示单元格中存在无效字符串;第三错误信息用于提示单元格中字符串的长度大于预设长度;第四错误信息用于提示单元格中存在重复字符串。
在本申请的一些实施例中,符合预设规则的单元格内可能并没有填写任何内容,这样,排课管理系统在获取到该单元的文本消息后,调用第一字符串分割函数,对添加标识符a之后的文本信息进行分割处理,将得到一组字符串”a”,也即该组字符串内的字符为标识符a,这时,可以确定该单元格内没有填写内容,排课管理系统生成第一错误信息并输出,终止对该单元格的解析,输出错误信息例如“任课教师没有填写”,以提示用户进行相应处理。
示例性的,在对所述第一字符串数组进行字符串校验,根据校验结果确定所述单元格对应的错误信息时,获取第一字符串数组的组数,若所述第一字符串数组的组数为1,且该组字符串中的字符仅有1个且为所述标识符a,则生成第一错误信息并输出。
在本申请的另一些实施例中,符合预设规则的单元格内填有内容,这样,排课管理系统在获取到该单元的文本消息后,调用第一字符串分割函数,对添加标识符a之后的文本信息即第二文本信息进行分割处理,将得到第一字符数组,该第一字符串数组的组数大于1,这时需要确定最后一组字符串是否为空,也即该组字符串对应的任课教师是否存在,以确定是否需要第一字符数组的组数进行调整。当最后一组字符串为空时,去除最后一组字符串,并调整第一字符数组为第二字符数组,其中第二字符数组为第一字符数组去除最后一组字符串后得到的字符数组。
具体的,对于最后一组字符串,实际内容可能为“教师Na”或者“a”,这时,为了确定最后一组字符串是否为空,可以根据去除标识符a后得到的内容是否为空以确定最后一组字符串是否为空。
请参见图2,图2是本申请实施例提供一种字符串组数的调整方法的流程示意图,详述如下:
步骤S201,遍历第一字符串数组,获取第一字符串数组中的最后一组字符串。
在本申请实施例中,当第一字符串数组的组数大于1时,遍历第一字符串数组,获取第一字符串数组中的最后一组字符串。
步骤S202,调用第二字符串分割函数,对的最后一组字符串进行分割处理,得到第一字符数组。
在本申请实施例中,第二字符串分割函数为.split(""),可以将字符串中的字符分割为一个个的字符,比如将字符串“bca”分割得到的字符数组为["b","c","a"],将字符串“教师Na”分割得到的字符数组为["教","师","N","a"]。
步骤S203,去除第一字符数组中包含的标识符a,得到第二字符数组。
在本申请实施例中,在得到第一字符数组后,确定第一字符数组中是否包含有标识符a,若第一字符数组中包含有标识符a,则将第一字符数组中包含的标识符a去除,得到新的字符数组,即第二字符数组,比如将分割得到字符数组为["教","师","N","a"]中的标识符a去除后,得到的第二字符数组为["教","师","N"]。
可以理解的是,当分割得到的字符数组为["a"],那么,当去除该字符数组中标识符a时,得到的第二字符数组为空。
步骤S204,若第二字符数组内的字符为空,则确定的最后一组字符串为空,去除的最后一组字符串,并更新去除的最后一组字符串的第一字符串数组为第二字符串数组。
在本申请实施例中,当最后一组字符串中仅有标识符a时,去除标识符a后,所得的字符数组将为空。也就是说最后一组字符串并不是有效字符串,即最后一组字符串并不是对应任课教师的名字相应的字符串,比如,在分隔符之后,没有填写任课教师的名字,这时,如果将最后一组字符串算入字符串占位数中,将会无法准确地定位单元格的错误。例如,任课教师仅填写了9位,在第9位任课教师之后还有分割符,那么在将分隔符之后的空值也算一位任课教师,将会导致地10任课教师无法填入该单元格中,将会出现意料之外的错误,导致无法正确对单元格的内容进行精确定位。为了避免这一情况的出现,需要在第二字符数组内的字符为空时,去除字符串数组中的最后一组字符串,以便于实现对单元格错误内容的精确定位。
在本申请实施例中,将去除最后一组字符串的第一字符串数组,更新为第二字符串数组,第二字符串数组与第一字符串数组即未去除最后一组字符串的字符串数组的差别在于,第二字符串数组的组数小于第一字符串数组的组数,且第二字符串数组的组数加1后等于第一字符串数组的组数。
相应的,在第一字符串数组更新为第二字符串数组之后,步骤S104对应更新为对第二字符串数组进行字符串校验,根据校验结果确定单元格对应的错误信息。
在本申请实施例中,在得到第一字符串数组或第二字符串数组之后,需要对第一字符串数组或第二字符串数组进行字符串校验,比如,确定第一字符串数组或第二字符串数组中是否存在无效字符串;确定第一字符串数组或第二字符串数组的长度是否大于预设长度;确定第一字符串数组或第二字符串数组中是否存在重复字符串。在确定第一字符串数组或第二字符串数组中存在无效字符串时,生成第二错误信息并输出,第二错误信息用于提示第一字符串数组或第二字符串数组中存在无效字符串;在确定第一字符串数组或第二字符串数组的长度大于预设长度时,生成第三错误信息并输出,第三错误信息用于提示第一字符串数组或第二字符串数组的长度大于预设长度;在确定第一字符串数组或第二字符串数组中存在重复字符串时,生成第四错误信息并输出,第四错误信息用于提示第一字符串数组或第二字符串数组中存在重复字符串。
示例性的,确定第一字符串数组或第二字符串数组中是否存在无效字符串,具体是将第一字符串数组或第二字符串数组中的字符串,与数据库中存储的预设字符串进行匹配,若第一字符串数组或第二字符串数组中的字符串与预设字符串匹配,则对应的字符串为有效字符串,若第一字符串数组或第二字符串数组中的字符串与预设字符串不匹配,则对应的字符串为无效字符串,生成相应的错误信息。比如第一字符串数组中有“教师N”,但在数据库中并没有“教师N”,那么“教师N”则为无效字符串,这时,生成的错误信息可以为“任课教师填写不正确或不存在”。
需要说明的是,第一字符串数组或第二字符串数组的长度,具体是指第一字符串数组或第二字符串数组中字符串的占位数,比如说第一字符串数组为[教师1,教师2,教师3,,,,,],其长度为8;第二字符串数组为[教师1,教师2,教师3],其长度为3。可以理解的是,这里所指的长度并不是说字符比如“教师1”的长度,而是分隔符前后的字符串的总占位数。
还需要说明的是,预设长度为某一单元格允许填写的字符串的总占位数,比如,单元设定可以填写的任课教师为10位,那么预设长度即为10。
示例性的,确定第一字符串数组或第二字符串数组的长度是否大于预设长度,具体是统计第一字符串数组或第二字符串数组中字符串的占位数,确定第一字符串数组或第二字符串数组的长度,并将所确定的长度与预设长度进行比较,若所确定的长度大于预设长度,则生成错误提示信息比如“任课教师不能超过10位”。
示例性的,确定第一字符串数组或第二字符串数组中是否存在重复字符串,具体是对第一字符串数组或第二字符串数组进行去重处理,将第一字符串数组或第二字符串数组的长度,与进行去重处理后的字符串数组的长度进行比较,确定两者的大小是否一致,如果不一致,则说明第一字符串数组或第二字符串数组中存在重复的字符串,生成相应的错误信息比如“任课教师存在重复”。
在本申请实施例中,为了方便快速的进行上述信息校验,本申请实施在确定第一字符串数组或第二字符串数组中存在的有效字符串和无效字符串时,按照一定的顺序将有效字符串和无效字符串存储到第一预设列表list1中,在存储过程中,无效字符串使用null值占位,存在多少个无效字符串,相应的有的有多少个null值。
在本申请的一些实施例中,按照一定的顺序将有效字符串和无效字符串存储到第一预设列表list1中,可以是在将第一字符串数组或第二字符串数组中的字符串与数据库中的预设字符串匹配时,根据匹配的结果先后将有效字符串和无效字符串存储到第一预设列表list1中。
请参阅图3,图3是本申请实施例提供的一种字符串存储方法的流程示意图,详述如下:
步骤S301,将第一字符串数组或第二字符串数组中的字符串,与数据库中存储的预设字符串进行匹配。
在本申请实施例中,在解析得到各个单元格对应的第一字符串数组或第二字符串数组后,将各个数组中的字符串与数据库中存储的预设字符串进行匹配,以确定该字符串对应的用户是否存在数据库中,比如,数组存在字符串[“教师1”],那么就从数据库中查找是否有预设字符串[“教师1”],以进行字符串匹配。
步骤S302,若第一字符串数组或第二字符串数组中的字符串与预设字符串不匹配,则对应的字符串为无效字符串。
在本申请实施例中,如果在数据库中没有查找到数组中的字符串[“教师1”],那么,说明字符串[“教师1”]为无效字符串,也就是在数据库中不存在名称为“教师1”的用户。
步骤S303,若第一字符串数组或第二字符串数组中的字符串与预设字符串匹配,则对应的字符串为有效字符串。
在本申请实施例中,如果在数据库中查找到数组中的字符串[“教师1”],那么,说明字符串[“教师1”]为有效字符串,也就是在数据库中存在名称为“教师1”的用户。
步骤S304,将有效字符串和无效字符串存储到第一预设列表list1中,其中无效字符串使用null值占位。
在本申请实施例中,在确定第一字符串数组或第二字符串数组中的字符串为有效字符串或无效字符串时,将其存储到第一预设列表list1中,不同的是,无效字符串使用null值代替,使用null值代替无效字符串的目的是为了方便后续的信息校验,比如,确定第一字符串数组或第二字符串数组的占位总数,确定第一预设列表list1中是否存在无效字符串,确定第一字符串数组或第二字符串数组中是否存在重复字符串,进行生成相应的错误信息,用于提示用户当前单元格所存在的错误。
示例性的,在步骤S304之后,还包括:
步骤S305,若第一预设列表list1中存在null值,则生成第二错误信息并输出。
在本申请实施例中,第二错误信息用于提示第一字符串数组或第二字符串数组对应的单元格中存在无效字符串。
由于null值是无效字符串的替代值,当第一预设列表list1中存储null值时,说明单元格对应的第一字符串数组或第二字符串数组中存在无效字符串,也就是该单元格的填写内容中有错误的任课教师,这时,对应生成的错误信息为“任课教师填写错误或不存在”。
示例性的,在步骤S304之后,还包括:
步骤S306,统计第一预设列表list1中的字符串的占位总数,确定第一字符串数组或第二字符串数组的长度。
在本申请实施例中,通过统计第一预设列表list1中的字符串的占位总数,可以确定第一字符串数组或第二字符串数组的长度,也即第一字符串数组或第二字符串数组中含有多少组字符串。
步骤S307,若第一字符串数组或第二字符串数组的长度大于预设长度,则生成第三错误信息并输出。
在本申请实施例中,第三错误信息用于提示第一字符串数组或第二字符串数组的长度大于预设长度,也就是单元格内填写的字符串的组数超过了预设的组数,比如,单元格内允许填写的任课教师为10位,但实际填写的任课教师超过了10位,这时,对应生成的第三错误信息为“任课教师不能超过10位”。
示例性的,在步骤S304之后,还包括:
步骤S308,若第一预设列表list1中不存在null值,则对第一预设列表list1中进行字符串去重处理,得到第二预设列表list2。
在本申请实施例中,由于单元格内填写的字符串可能存在重复的情况,比如,同时存在两个有效字符串[“教师1”],为了避免字符串重复带来的错误,需要对在确定第一预设列表list1中不存在无效字符串之后,对第一预设列表list1中的字符串进行去重处理,当存在两个或两个以上相同的字符串时,仅保留一个字符串。
步骤S309,若第一预设列表list1和第二预设列表list2的占位总数不一致,则生成第四错误信息并输出,第四错误信息用于提示第一字符串数组或第二字符串数组对应的单元格中存在重复字符串。
在本申请实施例中,对第一预设列表list1进行字符串去重处理后,得到第二预设列表list2,统计两个预设列表中的字符串的占位总数,如果第一预设列表list1和第二预设列表list2的占位总数不一致,则说明第一预设列表list1中存在重复的字符串,这时生成第四错误信息提示单元格中存在重复字符串,比如生成的第四错误信息为“任课教师存在重复”。
通过精准地定位单元格中不同的错误信息,并生成相应的错误信息提示用户该单元格存在的错误,可以快速地定位单元格的错误内容,提高排课管理的效率。
本申请实施例中,通过获取Excel文件并通过POI协议解析Excel文件,确定Excel文件中符合预设规则的单元格,预设规则为指定需要填写分隔符的单元格;再获取单元格的第一文本信息,并在第一文本信息的末尾添加标识符a,得到第二文本信息;调用第一字符串分割函数,对第二文本信息进行分割处理,得到第一字符串数组;对第一字符串数组进行字符串校验,根据校验结果确定单元格对应的错误信息,可以实现精准地定位单元格中不同的错误内容,提高排课管理的管理效率。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
基于上述实施例所提供的Excel文件校验方法,本申请实施例进一步给出实现上述方法实施例的装置实施例。
请参见图4,图4是本申请实施例提供的Excel文件校验装置的示意图。包括的各单元用于执行图1对应的实施例中的各步骤。具体请参阅图1对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。参见图4,Excel文件校验装置4包括:
Excel文件解析单元41,用于获取Excel文件并通过POI协议解析Excel文件,确定Excel文件中符合预设规则的单元格,预设规则为指定需要填写分隔符的单元格;
文本信息处理单元42,用于获取单元格的第一文本信息,并在第一文本信息的末尾添加标识符a,得到第二文本信息;
字符串分割单元43,用于调用第一字符串分割函数,对第二文本信息进行分割处理,得到第一字符串数组;
字符串校验单元44,用于对第一字符串数组进行字符串校验,根据校验结果确定单元格对应的错误信息。
示例性的,字符串校验单元44包括:
第一错误信息生成子单元,用于若第一字符串数组的组数为1,且所述第一字符串数组中的字符仅有1个且为标识符a,则生成第一错误信息并输出,第一错误信息用于提示单元格内填写的内容为空。
示例性的,字符串校验单元44还包括:
字符串数组遍历子单元,用于遍历第一字符串数组,获取第一字符串数组中的最后一组字符串;
字符串分割子单元,用于调用第二字符串分割函数,对的最后一组字符串进行分割处理,得到第一字符数组;
标识符去除子单元,用于去除第一字符数组中包含的标识符a,得到第二字符数组;
字符串数组更新子单元,用于若第二字符数组内的字符为空,则确定的最后一组字符串为空,去除的最后一组字符串,并更新去除的最后一组字符串的第一字符串数组为第二字符串数组。
示例性的,字符串校验单元44还包括:
第二错误信息生成子单元,用于确定第一字符串数组或第二字符串数组中是否存在无效字符串,若第一字符串数组或第二字符串数组中存在无效字符串,则生成第二错误信息并输出,第二错误信息用于提示第一字符串数组或第二字符串数组对应的单元格中存在无效字符串;和/或:
第三错误信息生成子单元,用于确定第一字符串数组或第二字符串数组的长度是否大于预设长度,若确定第一字符串数组或第二字符串数组的长度大于预设长度,则生成第三错误信息并输出,第三错误信息用于提示第一字符串数组或第二字符串数组的长度大于预设长度;和/或:
第四错误信息生成子单元,用于确定第一字符串数组或第二字符串数组中是否存在重复字符串,若第一字符串数组或第二字符串数组中存在重复字符串,则生成第四错误信息并输出,第四错误信息用于提示第一字符串数组或第二字符串数组对应的单元格中存在重复字符串。
示例性的,字符串校验单元44还包括:
字符串匹配子单元,用于将第一字符串数组或第二字符串数组中的字符串,与数据库中存储的预设字符串进行匹配;
无效字符串确定子单元,用于若第一字符串数组或第二字符串数组中的字符串与预设字符串不匹配,则对应的字符串为无效字符串;
有效字符串确定子单元,用于若第一字符串数组或第二字符串数组中的字符串与预设字符串匹配,则对应的字符串为有效字符串;
第一预设列表存储子单元,用于将有效字符串和无效字符串存储到第一预设列表list1中,其中无效字符串使用null值占位。
示例性的,字符串校验单元44还包括:
第五错误信息生成子单元,用于若第一预设列表list1中存在null值,则生成第二错误信息并输出,第二错误信息用于提示第一字符串数组或第二字符串数组对应的单元格中存在无效字符串。
示例性的,字符串校验单元44还包括:
字符串占位统计子单元,用于统计第一预设列表list1中的字符串的占位总数,确定第一字符串数组或第二字符串数组的长度;
第六错误信息生成子单元,用于若第一字符串数组或第二字符串数组的长度大于预设长度,则生成第三错误信息并输出,第三错误信息用于提示第一字符串数组或第二字符串数组的长度大于预设长度。
示例性的,字符串校验单元44还包括:
字符串去重子单元,用于若第一预设列表list1中不存在null值,则对第一预设列表list1中进行字符串去重处理,得到第二预设列表list2;
第七错误信息生成子单元,用于若第一预设列表list1和第二预设列表list2的占位总数不一致,则生成第四错误信息并输出,第四错误信息用于提示第一字符串数组或第二字符串数组对应的单元格中存在重复字符串。
需要说明的是,上述模块之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
图5是本申请实施例提供的Excel文件校验设备的示意图。如图5所示,该实施例的Excel文件校验设备5包括:处理器50、存储器51以及存储在存储器51中并可在处理器50上运行的计算机程序52,例如语音识别程序。处理器50执行计算机程序52时实现上述各个Excel文件校验方法实施例中的步骤,例如图1所示的步骤101-104。或者,处理器50执行计算机程序52时实现上述各装置实施例中各模块/单元的功能,例如图4所示单元41-44的功能。
示例性的,计算机程序52可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器51中,并由处理器50执行,以完成本申请。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序52在Excel文件校验设备5中的执行过程。例如,计算机程序52可以被分割成Excel文件解析单元41、文本信息处理单元42、字符串分割单元43、字符串校验单元44,各单元具体功能请参阅图1对应的实施例中地相关描述,此处不赘述。
Excel文件校验设备可包括,但不仅限于,处理器50、存储器51。本领域技术人员可以理解,图5仅仅是Excel文件校验设备5的示例,并不构成对Excel文件校验设备5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如Excel文件校验设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器50可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器51可以是Excel文件校验设备5的内部存储单元,例如Excel文件校验设备5的硬盘或内存。存储器51也可以是Excel文件校验设备5的外部存储设备,例如Excel文件校验设备5上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器51还可以既包括Excel文件校验设备5的内部存储单元也包括外部存储设备。存储器51用于存储计算机程序以及Excel文件校验设备所需的其他程序和数据。存储器51还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时可实现上述Excel文件校验方法。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在Excel文件校验设备上运行时,使得Excel文件校验设备执行时实现可实现上述Excel文件校验方法。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (8)
1.一种Excel文件校验方法,其特征在于,所述Excel文件校验方法包括:
获取Excel文件并通过POI协议解析所述Excel文件,确定所述Excel文件中符合预设规则的单元格,所述预设规则为指定需要填写分隔符的单元格;
获取所述单元格的第一文本信息,并在所述第一文本信息的末尾添加标识符,得到第二文本信息;
调用第一字符串分割函数,对所述第二文本信息进行分割处理,得到第一字符串数组;
对所述第一字符串数组进行字符串校验,根据校验结果确定所述单元格对应的错误信息;
所述对所述第一字符串数组进行字符串校验,根据校验结果确定所述单元格对应的错误信息,包括:
遍历所述第一字符串数组,获取所述第一字符串数组中的最后一组字符串;
调用第二字符串分割函数,对所述的最后一组字符串进行分割处理,得到第一字符数组;
去除所述第一字符数组中包含的标识符,得到第二字符数组;
若所述第二字符数组内的字符为空,则确定所述的最后一组字符串为空,去除所述的最后一组字符串,并更新去除所述的最后一组字符串的第一字符串数组为第二字符串数组;
所述对所述第一字符串数组进行字符串校验,根据校验结果确定所述单元格对应的错误信息中,包括:
将所述第一字符串数组或所述第二字符串数组中的字符串,与数据库中存储的预设字符串进行匹配;
若所述第一字符串数组或所述第二字符串数组中的字符串与所述预设字符串不匹配,则对应的字符串为无效字符串;
若所述第一字符串数组或所述第二字符串数组中的字符串与所述预设字符串匹配,则对应的字符串为有效字符串;
将所述有效字符串和所述无效字符串存储到第一预设列表中,其中所述无效字符串使用null值占位。
2.如权利要求1所述的Excel文件校验方法,其特征在于,所述对所述第一字符串数组进行字符串校验,根据校验结果确定所述单元格对应的错误信息,包括:
若所述第一字符串数组的组数为1,且所述第一字符串数组中的字符仅有1个且为所述标识符,则生成第一错误信息并输出,所述第一错误信息用于提示所述单元格内填写的内容为空。
3.如权利要求1所述的Excel文件校验方法,其特征在于,所述对所述第一字符串数组进行字符串校验,根据校验结果确定所述单元格对应的错误信息中,包括:
确定所述第一字符串数组或所述第二字符串数组中是否存在无效字符串,若所述第一字符串数组或所述第二字符串数组中存在无效字符串,则生成第二错误信息并输出,所述第二错误信息用于提示所述第一字符串数组或第二字符串数组对应的单元格中存在无效字符串;和/或:
确定所述第一字符串数组或所述第二字符串数组的长度是否大于预设长度,若确定所述第一字符串数组或所述第二字符串数组的长度大于预设长度,则生成第三错误信息并输出,所述第三错误信息用于提示所述第一字符串数组或所述第二字符串数组的长度大于预设长度;和/或:
确定所述第一字符串数组或所述第二字符串数组中是否存在重复字符串,若所述第一字符串数组或所述第二字符串数组中存在重复字符串,则生成第四错误信息并输出,所述第四错误信息用于提示所述第一字符串数组或所述第二字符串数组对应的单元格中存在重复字符串。
4.如权利要求1所述的Excel文件校验方法,其特征在于,在所述将所述有效字符串和所述无效字符串存储到第一预设列表中之后,包括:
若所述第一预设列表中存在null值,则生成第二错误信息并输出,所述第二错误信息用于提示所述第一字符串数组或所述第二字符串数组对应的单元格中存在无效字符串。
5.如权利要求1所述的Excel文件校验方法,其特征在于,在所述将所述有效字符串和所述无效字符串存储到第一预设列表中之后,包括:
统计所述第一预设列表中的字符串的占位总数,确定所述第一字符串数组或所述第二字符串数组的长度;
若所述第一字符串数组或所述第二字符串数组的长度大于预设长度,则生成第三错误信息并输出,所述第三错误信息用于提示所述第一字符串数组或所述第二字符串数组的长度大于预设长度。
6.如权利要求1所述的Excel文件校验方法,其特征在于,在所述将所述有效字符串和所述无效字符串存储到第一预设列表中之后,包括:
若所述第一预设列表中不存在null值,则对所述第一预设列表中进行字符串去重处理,得到第二预设列表;
若所述第一预设列表和所述第二预设列表的占位总数不一致,则生成第四错误信息并输出,所述第四错误信息用于提示所述第一字符串数组或所述第二字符串数组对应的单元格中存在重复字符串。
7.一种Excel文件校验设备,其特征在于,包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述的方法。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110788918.7A CN113626593B (zh) | 2021-07-13 | 2021-07-13 | 一种Excel文件校验方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110788918.7A CN113626593B (zh) | 2021-07-13 | 2021-07-13 | 一种Excel文件校验方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113626593A CN113626593A (zh) | 2021-11-09 |
CN113626593B true CN113626593B (zh) | 2024-04-19 |
Family
ID=78379627
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110788918.7A Active CN113626593B (zh) | 2021-07-13 | 2021-07-13 | 一种Excel文件校验方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113626593B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107247518A (zh) * | 2017-08-01 | 2017-10-13 | 微云数聚(北京)科技有限公司 | 多元联想输入的方法、装置、设备以及可读存储介质 |
CN109299719A (zh) * | 2018-09-30 | 2019-02-01 | 武汉斗鱼网络科技有限公司 | 基于字符分割的弹幕校验方法、装置、终端及存储介质 |
CN109643322A (zh) * | 2016-09-02 | 2019-04-16 | 株式会社日立高新技术 | 字符串辞典的构建方法、字符串辞典的检索方法及字符串辞典的处理系统 |
CN109800339A (zh) * | 2018-12-13 | 2019-05-24 | 平安普惠企业管理有限公司 | 正则表达式生成方法、装置、计算机设备及存储介质 |
WO2019169693A1 (zh) * | 2018-03-08 | 2019-09-12 | 平安科技(深圳)有限公司 | 数据快速批量导入方法、电子装置及计算机可读存储介质 |
WO2019205308A1 (zh) * | 2018-04-27 | 2019-10-31 | 平安科技(深圳)有限公司 | 信息的输入方法、装置、终端设备及介质 |
CN111581941A (zh) * | 2020-05-12 | 2020-08-25 | 国网上海市电力公司 | 一种用于继电保护装置报告对比校验的方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10331947B2 (en) * | 2017-04-26 | 2019-06-25 | International Business Machines Corporation | Automatic detection on string and column delimiters in tabular data files |
US11531779B2 (en) * | 2017-12-11 | 2022-12-20 | Digital Guardian Llc | Systems and methods for identifying personal identifiers in content |
-
2021
- 2021-07-13 CN CN202110788918.7A patent/CN113626593B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109643322A (zh) * | 2016-09-02 | 2019-04-16 | 株式会社日立高新技术 | 字符串辞典的构建方法、字符串辞典的检索方法及字符串辞典的处理系统 |
CN107247518A (zh) * | 2017-08-01 | 2017-10-13 | 微云数聚(北京)科技有限公司 | 多元联想输入的方法、装置、设备以及可读存储介质 |
WO2019169693A1 (zh) * | 2018-03-08 | 2019-09-12 | 平安科技(深圳)有限公司 | 数据快速批量导入方法、电子装置及计算机可读存储介质 |
WO2019205308A1 (zh) * | 2018-04-27 | 2019-10-31 | 平安科技(深圳)有限公司 | 信息的输入方法、装置、终端设备及介质 |
CN109299719A (zh) * | 2018-09-30 | 2019-02-01 | 武汉斗鱼网络科技有限公司 | 基于字符分割的弹幕校验方法、装置、终端及存储介质 |
CN109800339A (zh) * | 2018-12-13 | 2019-05-24 | 平安普惠企业管理有限公司 | 正则表达式生成方法、装置、计算机设备及存储介质 |
CN111581941A (zh) * | 2020-05-12 | 2020-08-25 | 国网上海市电力公司 | 一种用于继电保护装置报告对比校验的方法 |
Non-Patent Citations (1)
Title |
---|
面向队列研究的数据校验方法设计与实现;刘梦舟;万方数据库;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113626593A (zh) | 2021-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107807982B (zh) | 一种异构数据库的一致性校验方法及装置 | |
CN111177184A (zh) | 基于自然语言的结构化查询语言转换方法、及其相关设备 | |
CN103888254A (zh) | 一种网络验证信息的方法和装置 | |
CN108491326B (zh) | 测试行为重组方法、装置及存储介质 | |
CN109815112B (zh) | 基于功能测试的数据调试方法、装置及终端设备 | |
JP2018194919A (ja) | 学習プログラム、学習方法及び学習装置 | |
CN111273891A (zh) | 基于规则引擎的业务决策方法、装置及终端设备 | |
CN114035827A (zh) | 应用程序更新方法、装置、设备及存储介质 | |
JP5373998B1 (ja) | 辞書生成装置、方法、及びプログラム | |
CN113626593B (zh) | 一种Excel文件校验方法、装置及设备 | |
CN115988001A (zh) | 区块链系统的共识投票处理方法、装置、设备以及介质 | |
CN112395880A (zh) | 结构化三元组的纠错方法、装置、计算机设备及存储介质 | |
CN107180048B (zh) | 数据库中幂等状态的识别方法和装置 | |
CN115130043B (zh) | 基于数据库的数据处理方法、装置、设备及存储介质 | |
CN111581344A (zh) | 一种接口信息审核方法、装置、计算机设备及存储介质 | |
CN113703753B (zh) | 用于产品开发的方法、装置和产品开发系统 | |
JP7211139B2 (ja) | 校閲方法、情報処理装置および校閲プログラム | |
CN113821692A (zh) | 数据处理方法、装置、服务器及存储介质 | |
CN113342647A (zh) | 一种测试数据的生成方法及装置 | |
CN112783775A (zh) | 特殊字符输入测试方法及装置 | |
CN111639475A (zh) | 产品编码的生成方法、装置及电子设备 | |
CN117150246B (zh) | 数据质量校验方法、系统、电子设备及存储介质 | |
CN108763363B (zh) | 一种检验待写入记录的方法及装置 | |
CN110929111B (zh) | 用于匹配私有数据的匹配模式自动生成方法、装置及设备 | |
CN109731341B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |