表格数据转换方法、设备及计算机可读存储介质与流程
未命名
08-13
阅读:104
评论:0

1.本发明涉及数据转换技术领域,具体涉及一种表格数据转换方法、设备及计算机可读存储介质。
背景技术:
2.随着数字技术的进步,人们生产生活的方方面面都能够通过数字化实现更高的工作效率和更精确的作业效果,例如,在面对较为庞大的数据时,人们通过将多项数据输入表格中,能够便捷地对数据进行管理与计算。
3.然而,在一些情况下,表格数据需要在不同设备、不同软件或不同操作系统间迁移,以适应复杂多变的作业需求,在表格数据进行迁移转换后,由于软件和操作系统的差异,往往不能较为精确地还原原始表格数据中数据的原始位置,特别是当原始表格数据中存在空数据时,迁移转换得到的新表格数据往往无法将原始表格数据中的空数据正确地显示出来,使得迁移转换后的表格数据变得难以阅读,甚至对作业造成影响。
技术实现要素:
4.基于上述现状,本发明的主要目的在于提供一种能够将原始表格数据中的空数据正确识别并转换的表格数据转换方法。
5.为实现上述目的,本发明采用的技术方案如下:
6.步骤s1,获取源表格字符串数据,源表格字符串数据包括l行数据,其中,l为正整数,l≥1;
7.步骤s2,将源表格字符串数据的当前行数据以空白符为分隔转换为第一字符串数组,其中,若当前行数据的第1个字符为空白符,则在第一字符串数组的第1项写入一个空字符串;
8.步骤s3,根据当前行数据和第一字符串数组生成第二字符串数组,其中,第二字符串数组包括第一字符串数组中的所有字符串,在当前行数据中第n1个非空字符之前存在与其相邻的s个空白符时,s为正整数,若s≥2且s个空白符为连续的空白符,则第二字符串数组中第n1个非空字符所属的字符串和其前一项字符串之间写入有(s-1)个空字符串;
9.步骤s4,将第二字符串数组输入目标表格。
10.优选地,步骤s3,包括:
11.步骤s32,将第一字符串数组中的第1项字符串写入第二字符串数组;
12.步骤s34,通过公式s=g
k-j
k-1-g
k-1
计算s,其中,gk为第一字符串数组中第k项字符串的第1个字符在当前行数据中的位置序号,j
k-1
为第一字符串数组中第k-1项字符串的长度,g
k-1
为第一字符串数组中第k-1项字符串的第1个字符在当前行数据中的位置序号,第k项字符串的第1个字符为第n1个非空字符,k为正整数且k的初始值为2;
13.步骤s36,将(s-1)个空字符串逐个作为新的末尾项写入第二字符串数组;
14.步骤s38,将第一字符串数组中第k项字符串作为新的末尾项写入第二字符串数
组;
15.步骤s39,将k设为(k+1)并跳转至步骤s34,直到k=m,其中,m为第一字符串数组中包含的字符串的总项数。
16.优选地,步骤s36之前,方法还包括:
17.步骤s3601,判断s是否大于1;
18.若是,则执行步骤s36;
19.若否,则执行步骤s38。
20.优选地,步骤s34包括:
21.步骤s341,从当前行数据的第n2个字符开始查找第一字符串数组中第k项字符串的第1个字符,得到位置序号gk,其中,n2的初始值为第一字符串数组中第1项非空字符串的长度与当前行数据中第1个非空字符之前存在的空白符的数量s1的和加1;
22.步骤s342,获取g
k-1
,其中,k=2时g
k-1
=1,k>2时g
k-1
为上一次执行步骤s341得到的gk;
23.步骤s343,获取j
k-1
,并通过公式s=g
k-j
k-1-g
k-1
计算s;
24.步骤s39之前,方法还包括:步骤s3901,获取第一字符串数组中第k项字符串的长度jk,将n2设为(n2+s+jk)。
25.优选地,步骤s1之后,方法还包括:
26.步骤s110,将源表格字符串数据以换行符为分隔转换为第三字符串数组,其中,第三字符串数组包括l项字符串,第三字符串数组中第e项字符串中的字符为源表格字符串数据的第e行字符,e为正整数,1≤e≤l;
27.步骤s2包括:步骤s21,将第三字符串数组中第e项字符串确定为当前行数据,其中,e的初始值为1;
28.步骤s39之后,方法还包括:步骤s3910,将e设为(e+1),将k重置为2,并跳转至步骤s2。
29.优选地,步骤s110之前,方法还包括:将源表格字符串数据中所包含的所有换行符的类型转换为目标类型。
30.优选地,步骤s3之后,方法还包括:
31.步骤s310,获取生成的每个第二字符串数组中包含的字符串的项数,取其中的最大值x;
32.步骤s320,生成包含l行
×
x列个输入框的目标表格;
33.步骤s4包括:步骤s41,将生成的所有第二字符串数组输入至目标表格的输入框,其中,每个输入框输入一个字符串。
34.优选地,步骤s3包括:步骤s31,为第二字符串数组的每项字符串添加行序号标识,其中,行序号为该字符串所属的第二字符串数组所对应的行数据的行号;
35.步骤s41,包括:
36.步骤s411,获取当前第二字符串数组中的每项字符串的项序号;
37.步骤s412,将当前第二字符串数组中的每项字符串,根据其行序号li和项序号xj,分别输入至目标表格中第li行第xj列的输入框中,其中,i和j均为正整数,1≤i≤l,1≤i≤x。
38.本发明通过将源表格字符串数据的当前行数据以空白符为分隔转换为第一字符串数组,将第一字符串数组中的所有字符串写入第二字符串数组中,并根据当前行数据中相邻的两个第一字符串数组中的字符串之间存在的空白符的数量,在第二字符串数组的对应位置写入空字符串以表示源表格数据中存在的空数据栏,使得将能够体现源表格数据中存在的空数据栏的第二字符串数组在输入目标表格后,得到的目标表格不会存在数据栏位错位的问题,使表格数据的转换更加准确。
39.本发明的其他有益效果,将在具体实施方式中通过具体技术特征和技术方案的介绍来阐述,本领域技术人员通过这些技术特征和技术方案的介绍,应能理解所述技术特征和技术方案带来的有益技术效果。
附图说明
40.以下将参照附图对本发明提供的表格数据转换方法的优选实施方式进行描述。图中:
41.图1为本发明的一种优选实施方式的流程示意图;
42.图2为本发明的步骤s3的子步骤的一种优选实施方式的流程示意图;
43.图3为本发明的步骤s36之前的步骤的一种优选实施方式的流程示意图;
44.图4为本发明的步骤s34的子步骤的一种优选实施方式的流程示意图;
45.图5为本发明的步骤s1之后的步骤的一种优选实施方式的流程示意图;
46.图6为本发明的步骤s110之前的步骤的一种优选实施方式的流程示意图;
47.图7为本发明的步骤s3之后的步骤的一种优选实施方式的流程示意图;
48.图8为本发明的步骤s3的子步骤的一种优选实施方式的流程示意图;
49.图9为本发明实施例的一种表格数据转换设备的结构示意图。
具体实施方式
50.以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分,为了避免混淆本发明的实质,公知的方法、过程、流程、元件并没有详细叙述。
51.此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的,并且附图不一定是按比例绘制的。
52.除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
53.在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
54.随着数字技术的发展与进步,人们越来越依赖通过各种便于查阅的数据形式对数量较大的数据进行管理和存储,其中,表格形式的数据具备便于人员查阅检索、易于管理和适用性广的优势,因此许多领域都将数据输入表格中进行保存。
55.为了适应不同领域中多设备集群协同作业的场景,一个设备上的表格数据往往需
要被迁移或同步至另一设备上,当多台设备的操作系统或软件环境均一致时,表格数据的迁移与同步较为便利。然而,实际情况中并不能保证每台作业设备均在操作系统或软件环境上一致,因此,本技术发明人注意到,可以通过将表格数据进行转换的方式来适应不同操作系统或软件环境的设备,实现表格数据的迁移或同步。
56.然而,本技术发明人经过研究发现,当需要被转换的表格数据中存在空数据时,由于表格数据中用于表示空数据的标记与用于表示表格栏位间的间隔的标记往往均为空白符,现有的表格数据转换方式仅将表格数据中的空白符作为表格栏位间的间隔直接进行表格数据转换,不能考虑到表格数据中存在空数据的情况,转换后得到的新表格数据可能会存在数据栏位错位的风险,因此,迫切需要研发一种能够对表格数据中的空白符进行识别并自动在转换后得到的数据中添加空数据的表格数据转换方法。
57.基于此,发明人经过研究,设计了一种表格数据转换方法,通过将源表格字符串数据的当前行数据以空白符为分隔转换为第一字符串数组,将第一字符串数组中的所有字符串写入第二字符串数组中,并根据当前行数据中相邻的两个第一字符串数组中的字符串之间存在的空白符的数量,在第二字符串数组的对应位置写入空字符串以表示源表格数据中存在的空数据栏,使得将能够体现源表格数据中存在的空数据栏的第二字符串数组在输入目标表格后,得到的目标表格不会存在数据栏位错位的问题,使表格数据的转换更加准确。
58.本技术实施例公开的表格数据转换方法可以但不限于用于对excel表格数据进行转换,还可以应用于对其他任何需要进行转换的表格形式进行表格数据转换,在本技术实施例中,以用于对excel表格数据进行转换为例进行说明。
59.在本技术实施例中所提及的字符串指的是由数字、字母、下划线或符号组成的一串字符,是编程语言中用于表示文本的数据类型。字符串的长度即为组成字符串的字符的数量,其中,字符串中的每个空格占一个单位长度,而空字符串不占长度,即空字符串的长度为0。
60.在本技术实施例中所提及的数组指的是有序的元素序列,可以由多项字符串组成,也可以由多项数组组成,数组是在程序设计中,为了处理方便,而将具有相同类型的若干元素按有序的形式组织起来的一种形式,可以理解的是,数组中的每项元素在同一数组中均具有用于查找定位的位置序号,例如,存在一个数组array=[“张三”,“李四”,“赵五”],则在常见的计算机语言中,“张三”的位置序号为0,“李四”的位置序号为1,“赵五”的位置序号为2。
[0061]
图1示出了本发明的一种优选实施方式的流程示意图,该方法由表格数据转换设备执行,表格数据转换设备例如可以是计算机、服务器等。如图1所示,该方法包括以下步骤:
[0062]
步骤s1:获取源表格字符串数据,源表格字符串数据包括l行数据,其中,l为正整数,l≥1。
[0063]
本步骤中,源表格字符串数据指的是表格数据的源代码,例如对表格数据进行复制后,计算机获取的剪切板中的内容即为源表格字符串数据,也可以通过直接读取表格数据的代码来得到源表格字符串数据,本技术实施例对源表格字符串数据的获取方式不作特殊限定,只需要确保获取到的源表格字符串数据能够在特定软件上被自动识别为表格并显示即可,例如excel表格。
[0064]
其中,以excel表格为例:
[0065]
姓名年龄电话地址李四32 某市
[0066]
上述表格的源表格字符串数据为:“姓名/1年龄/1电话/1地址/2李四/132/1/1某市”,其中,为了便于展示和理解,本技术实施例描述中均用/1表示空白符,/2表示换行符。在计算机实际显示中,空白符与换行符可能不可见,并发挥其实际效果。可以理解的是,当表格数据存在多行时,得到的源表格字符串数据也存在多行,且在文本上以一串字符串的形式体现。
[0067]
步骤s2:将源表格字符串数据的当前行数据以空白符为分隔转换为第一字符串数组,其中,若当前行数据的第1个字符为空白符,则在第一字符串数组的第1项写入一个空字符串。
[0068]
在本步骤中,将源表格字符串数据的当前行数据以空白符为分隔转换为第一字符串数组具体为,例如,源表格字符串数据的当前行数据为:“姓名/1年龄/1电话/1地址”,以空白符为分隔转换得到的第一字符串数组为:[“姓名”,“年龄”,“电话”,“地址”],再例如,源表格字符串数据的当前行数据为:“/132/1某市”,以空白符为分隔转换得到的第一字符串数组为:[
“”
,“32”,“某市”]。
[0069]
其中,为了实现上述分隔效果,本步骤中可以采用javascript中的split()方法对源表格字符串数据进行分隔,javascript中的split()方法在对字符串进行分隔后得到的数组即具备上述特点,也可以通过对源表格字符串数据进行分隔后再判断并处理的方式实现,例如对源表格字符串数据的当前行数据:“/132/1某市”以空格符为分隔得到第一字符串数组:[“32”,“某市”],然后对源表格字符串数据的当前行数据的第一个字符进行判断,若为空白符,则在第一字符串数组的第一项写入一个空字符串,最终得到的第一字符串数组为:[
“”
,“32”,“某市”]。可以理解的是,可以采用多种方式实现本步骤中对源表格字符串数据的当前行数据以空白符进行分隔转换的效果,本技术实施例并未对数据的分隔方式进行任何改进,只需要保证转换得到的第一字符串数组能够满足本技术实施例举例描述的特性即可。
[0070]
需要说明的是,本步骤中描述的对数据的分隔方式无法考虑当前行数据中的全部空白符,例如,当前行数据对应的表格的一行为:
[0071]
ꢀꢀ
张三李四
ꢀꢀ
赵五
[0072]
则当前行数据为:“/1/1张三/1李四/1/1/1赵五”,对当前行数据进行分隔后,得到的第一字符串数组为:[
“”
,“张三”,“李四”,“赵五”]。
[0073]
步骤s3:根据当前行数据和第一字符串数组生成第二字符串数组,其中,第二字符串数组包括第一字符串数组中的所有字符串,在当前行数据中第n1个非空字符之前存在与其相邻的s个空白符时,s为正整数,若s≥2且s个空白符为连续的空白符,则第二字符串数组中第n1个非空字符所属的字符串和其前一项字符串之间写入有(s-1)个空字符串。
[0074]
本步骤中,生成第二字符串数组的方式具体为,例如,当前行数据为:“/1张三/1/1/1李四/1赵五”,第一字符串数组为:[
“”
,“张三”,“李四”,“赵五”],此时直接将第一字符串数组中包含的全部字符串写入第二字符串数组中,得到:[
“”
,“张三”,“李四”,“赵五”],计算当前行数据中第一个非空字符之前存在的与其相邻的空白符数量s1=1,由于s1小于
2,因此可以判断源表格字符串数据所对应的表格中第一栏与第二栏之间不存在空数据栏,即第二字符串数组中第一项字符串与第二项字符串之间不存在空数据,不需要做处理,接着计算第一字符串数组中的第二项字符串“张三”与第三项字符串“李四”在当前行数据中对应的字符之间存在的空白符的数量s2,可知s2=3,由于s2≥2,表明源表格字符串数据所对应的表格中第二栏与第三栏之间存在空数据栏,即第二字符串数组中第二项字符串与第三项字符串之间存在空数据,则在第二字符串数组中“张三”与“李四”之间写入(s2-1)个空字符串,得到第二字符串数组:[
“”
,“张三”,
“”
,
“”
,“李四”,“赵五”],此时继续计算第一字符串数组中第三项字符串“李四”与第四项字符串“赵五”在当前行数据中对应的字符之间存在的空白符的数量s3,可知s3=1,由于s3小于2,因此可以判断源表格字符串数据所对应的表格中第三栏与第四栏之间不存在空数据栏,即第二字符串数组中第三项字符串与第四项字符串之间不存在空数据,不需要做处理,此时第一字符串数组中所有相邻字符串之间的空数据已被判断完毕,最终生成的第二字符串数组为:[
“”
,“张三”,
“”
,
“”
,“李四”,“赵五”]。
[0075]
需要说明的是,本步骤生成第二字符串数组的目的是得到一组能够正确体现源表格字符串数据所对应的原表格中数据栏状态的数组,在正确位置存在空字符串以对应原表格中存在的空数据栏。
[0076]
步骤s4:将第二字符串数组输入目标表格。
[0077]
由于在步骤s3中得到的第二字符串数组是一组能够正确体现源表格字符串数据所对应的原表格中数据栏状态的数组,使得当使用第二字符串数组进行表格数据迁移或同步时,通过将第二字符串数组中的数据依次输入新表格中即可使得新表格与源表格字符串数据所对应的表格一致,不会出现数据栏错位的情况。在某些表格的生成方式中,也可以直接将第二字符串数组中的数据作为表格中数据栏的数据来生成新的表格,本领域技术人员熟知并了解依据数组中的数据生成表格的方式,在此不做过多赘述。
[0078]
通过上述步骤s1至步骤s4的方式,在第二字符串数组的对应位置写入空字符串以表示源表格数据中存在的空数据栏,使得将能够体现源表格数据中存在的空数据栏的第二字符串数组在输入目标表格后,得到的目标表格不会存在数据栏位错位的问题,使表格数据的转换更加准确。
[0079]
请参阅图2,图2为本发明的步骤s3的子步骤的一种优选实施方式的流程示意图。如图2所示,在本技术的一些实施例中,步骤s3包括:
[0080]
步骤s32:将第一字符串数组中的第1项字符串写入第二字符串数组。
[0081]
本步骤中,由于源表格字符串数据的当前行数据中若第一项为空白符,则意味着源表格字符串数据的当前行数据所对应的原表格中第1项必然为空数据栏,此时步骤s2中得到的第一字符串数组的第1项也为空字符串,因此直接将第一字符串数组中的第1项字符串写入第二字符串数组便可以使第二字符串数组的第1项能够准确体现原表格的数据栏情况,而若源表格字符串数据的当前行数据中第1项不为空白符,则步骤s2中得到的第一字符串数组的第1项即为源表格字符串数据所对应的原表格的数据栏的第一项,此时直接将第一字符串数组中的第1项字符串写入第二字符串数组也可以使第二字符串数组的第1项能够准确体现原表格的数据栏情况,因此在步骤s32中,针对第一字符串数组中的第1项字符串可以不作处理,直接作为第二字符串数组的第一项写入。
[0082]
步骤s34:通过公式s=g
k-j
k-1-g
k-1
计算s,其中,gk为第一字符串数组中第k项字符串的第1个字符在当前行数据中的位置序号,j
k-1
为第一字符串数组中第k-1项字符串的长度,g
k-1
为第一字符串数组中第k-1项字符串的第1个字符在当前行数据中的位置序号,第k项字符串的第1个字符为第n1个非空字符,k为正整数且k的初始值为2;
[0083]
步骤s36:将(s-1)个空字符串逐个作为新的末尾项写入第二字符串数组;
[0084]
步骤s38:将第一字符串数组中第k项字符串作为新的末尾项写入第二字符串数组。
[0085]
在步骤s34至步骤s38中,例如,源表格字符串数据的当前行数据所对应的原表格为:
[0086]
张三
ꢀꢀꢀ
李四
[0087]
源表格字符串数据的当前行数据为:“张三/1/1/1/1李四”,经过步骤s2的分隔得到的第一字符串数组为:[“张三”,“李四”],此时经过步骤s32得到的第二字符串数组为:[“张三”],此时在步骤s34中,k=2,gk为第一字符串数组中“李四”的第1个字符在当前行数据中的位置序号,获取到gk=7,j
k-1
为第一字符串数组中第1项字符串“张三”的长度,获取到j
k-1
=2,g
k-1
为第一字符串数组中“张三”的第1个字符在当前行数据中的位置序号,获取到g
k-1
=1,此时计算s=g
k-j
k-1-g
k-1
=7-2-1=4,则在步骤s36中,将(s-1)=4-1=3个空字符串逐个作为新的末尾项写入第二字符串数组中,此时得到的第二字符串数组为:[“张三”,
“”
,
“”
,
“”
],然后在步骤s38中,将第一字符串数组中第k项字符串“李四”作为新的末尾项写入第二字符串数组中,得到第二字符串数组为:[“张三”,
“”
,
“”
,
“”
,“李四”]。
[0088]
其中,作为新的末尾项写入第二字符串数组指的是,利用数组中元素有序排列的特点,将字符串写入数组的末尾,使得数组中的元素能够按照写入时的先后顺序排列,在程序语言中可以直接通过函数方法实现,例如javascript中对数组进行写入操作的push()方法,当通过不同程序语言或软件来实施本技术提供的实施例时,也可以采用不同方式实现本技术实施例所描述的效果,本技术实施例对写入数组的具体方式不作特殊限定。
[0089]
步骤s39:将k设为(k+1)并跳转至步骤s34,直到k=m,其中,m为第一字符串数组中包含的字符串的总项数。
[0090]
本步骤目的是使得第一字符串数组中的每项数据间的空白符数量均能够被计算,即使生成的第二字符串数组中不会遗漏与原表格中空数据栏对应的空字符串。
[0091]
需要说明的是,针对步骤s34中各项数据的获取,可以在执行步骤s34之前预先执行获取,其中,步骤s34中部分数据的获取方式可以为直接调用上一次执行时保留的历史数据。
[0092]
通过将第一字符串数组中第一项字符串写入第二字符串数组中,并对第一字符串数组中第二项开始的每项字符串间的空白符数量进行计算,并在将第一字符串数组中第二项开始的每项字符串写入第二字符串之前,先将(s-1)个空字符串写入第二字符串,能够利用数组的有序特点,使最终得到的第二字符串数组中每项字符串的位置都能与源表格字符串数据所对应的原表格中的数据栏一一对应。
[0093]
请参阅图3,图3为本发明的步骤s36之前的步骤的一种优选实施方式的流程示意图。如图3所示,在本技术的一些实施例中,步骤s36之前,还包括:
[0094]
步骤s3601:判断s是否大于1;
[0095]
若判断为是,则执行步骤s36;
[0096]
若判断为否,则执行步骤s38。
[0097]
由于在excel表格数据中,当两项数据栏之间不存在空数据栏时,源表格字符串数据中这两项数据栏所对应的字符串之间依旧会存在一个空白符表示分隔,因此当计算得到的空白符数量s不大于1时,则说明不需要在第二字符串数组中补充空字符串,因此直接跳过写入(s-1)个空字符串的步骤,直接进行下一个字符串之前的空白符数量s的计算,可以避免某些程序语言中可能出现的写入空字符串数量为0时的运行错误,也能节约一定的计算资源。
[0098]
请参阅图4,图4为本发明的步骤s34的子步骤的一种优选实施方式的流程示意图。如图4所示,在本技术的一些实施例中,步骤s34包括:
[0099]
步骤s341:从当前行数据的第n2个字符开始查找第一字符串数组中第k项字符串的第1个字符,得到位置序号gk,其中,n2的初始值为第一字符串数组中第1项非空字符串的长度与当前行数据中第1个非空字符之前存在的空白符的数量s1的和加1;
[0100]
步骤s342:获取g
k-1
,其中,k=2时g
k-1
=1,k>2时g
k-1
为上一次执行步骤s341得到的gk;
[0101]
步骤s343:获取j
k-1
,并通过公式s=g
k-j
k-1-g
k-1
计算s;
[0102]
步骤s39之前,还包括:
[0103]
步骤s3901:获取第一字符串数组中第k项字符串的长度jk,将n2设为(n2+s+jk)。
[0104]
在步骤s341至步骤s343及步骤s3901中,例如,源表格字符串数据的当前行数据为:“张三/1李四/1李华”,分隔得到的第一字符串数组为:[“张三”,“李四”,“李华”],此时当k=3时,若直接从当前行数据中查找第一字符串数组中第k项字符串的第1个字符,得到的位置序号gk为4,是错误的,实际上查找到的是第一字符串数组中第2项字符串的第1个字符在当前行数据中的位置,可能导致后续计算出错,影响表格数据转换的准确性。
[0105]
通过设置n2,并使得每次查找确定位置序号gk时都从当前行数据中的第n2个字符开始查找,并在每次循环中将n2自增加上一个字符串的长度j
k-1
和之前计算得到的空白符数量s,使得每次查找时都能在当前行数据中跳过已经查找过的字符,避免了由于当前行数据中存在重复的字符时导致查找结果不准确而影响表格数据转换的准确度,提高本技术实施例提供的表格数据转换方法对存在重复数据的表格进行表格数据转换时的适用性和准确度。
[0106]
请参阅图5,图5为本发明的步骤s1之后的步骤的一种优选实施方式的流程示意图。如图5所示,在本技术的一些实施例中,步骤s1之后,还包括:
[0107]
步骤s110:将源表格字符串数据以换行符为分隔转换为第三字符串数组,其中,第三字符串数组包括l项字符串,第三字符串数组中第e项字符串中的字符为源表格字符串数据的第e行字符,e为正整数,1≤e≤l;
[0108]
步骤s2包括:
[0109]
步骤s21:将第三字符串数组中第e项字符串确定为当前行数据,其中,e的初始值为1;
[0110]
步骤s39之后,还包括:
[0111]
步骤s3910:将e设为(e+1),将k重置为2,并跳转至步骤s2。
[0112]
通过将源表格字符串数据以换行符为分隔转换为第三字符串数组,以使得到的第三字符串数组中的每一项分别体现源表格字符串数据中的一行数据,再通过设置循环跳转,使得当源字符串数据中存在多行数据时,能够依次针对包含多行表格的源表格字符串数据中的每一行进行表格数据转换。
[0113]
请参阅图6,图6为本发明的步骤s110之前的步骤的一种优选实施方式的流程示意图。如图6所示,在本技术的一些实施例中,步骤s110之前,还包括:
[0114]
步骤s1101:将源表格字符串数据中所包含的所有换行符的类型转换为目标类型。
[0115]
在步骤s110中将源表格字符串数据以换行符为分隔转换为第三字符串数组时,由于不同操作系统中换行符的形式可能不同,进而使进行分隔操作时所需要指定的换行符的形式也有所不同,例如在linux系统中,换行符为\n(0x0a),在mac系统中,换行符为\r(0x0d),而在windows系统中的换行符为\r\n(0x0d,0x0a),若进行分隔操作时,换行符的形式指定错误则可能使得分隔不正确,因此通过预先将可能存在的所有换行符的类型统一转换为同一类型,可以确保将源表格字符串数据以换行符为分隔转换为第三字符串数组时不易由于未指定正确类型的换行符而导致分隔出错。
[0116]
请参阅图7,图7为本发明的步骤s3之后的步骤的一种优选实施方式的流程示意图。如图7所示,在本技术的一些实施例中,步骤s3之后,还包括:
[0117]
步骤s310:获取生成的每个第二字符串数组中包含的字符串的项数,取其中的最大值x;步骤s320:生成包含l行
×
x列个输入框的目标表格;
[0118]
步骤s4包括:
[0119]
步骤s41:将生成的所有第二字符串数组输入至目标表格的输入框,其中,每个输入框输入一个字符串。
[0120]
在步骤s310中,第二字符串数组中包含的项数的最大值x即可以理解为源表格字符串数据所对应的原表格中的列数。
[0121]
通过获取每个第二字符串数组中包含的字符串的项数并取其最大值x,生成包含l行
×
x列个输入框的目标表格,并将所有第二字符串数组输入至目标表格的输入框中,能够使新生成的表格的数据栏数量与原表格一致,使得表格数据转换至新表格后能够保持与原表格较高的一致性。
[0122]
请参阅图8,图8为本发明的步骤s3的子步骤的一种优选实施方式的流程示意图。如图8所示,在本技术的一些实施例中,步骤s3包括:
[0123]
步骤s31:为第二字符串数组的每项字符串添加行序号标识,其中,行序号为该字符串所属的第二字符串数组所对应的行数据的行号;
[0124]
步骤s41包括:
[0125]
步骤s411:获取当前第二字符串数组中的每项字符串的项序号;
[0126]
步骤s412:将当前第二字符串数组中的每项字符串,根据其行序号li和项序号xj,分别输入至目标表格中第li行第xj列的输入框中,其中,i和j均为正整数,1≤i≤l,1≤i≤x。
[0127]
通过为第二字符串数组的每项字符串添加行序号标识,并获取当前第二字符串数组中每项字符串的项序号,在输入目标表格中时将行序号与项序号对应目标表格的行与列输入,能够使得转换后的表格数据与原表格的位置一致,表格数据转换更加精确,进一步避
免出现表格数据栏错位的意外。
[0128]
根据本技术实施例的另一个方面,提供一种表格数据转换设备。具体请参阅图9,图9示出了根据本发明实施例的一种表格数据转换设备的结构示意图,本技术具体实施例并不对表格数据转换设备的具体实现做限定。
[0129]
该表格数据转换设备可以包括:处理器902和存储器906。
[0130]
其中,存储器906用于存储可执行指令910,可执行指令910使处理器902执行如上述表格数据转换方法实施例中的相关步骤。
[0131]
具体地,可执行指令910可以包括程序代码,该程序代码包括计算机程序。
[0132]
处理器902可能是中央处理器cpu,或者是特定集成电路asic(application specific integrated circuit),或者是被配置成实施本技术实施例的一个或多个集成电路。表格数据转换设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu;也可以是不同类型的处理器,如一个或多个cpu以及一个或多个asic。
[0133]
存储器906,用于存储可执行指令910。存储器906可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
[0134]
在一种实施方式中,还可以包括通信接口904和通信总线908。
[0135]
其中,处理器902、存储器906和通信接口904通过通信总线908完成相互间的通信。
[0136]
此外,本发明还提供了一种用于进行表格数据转换的计算机可读存储介质,如芯片、光盘等,计算机可读存储介质上存储有执行程序,该执行程序被执行时实现如上述任一项所述的表格数据转换方法。
[0137]
需要说明的是,本公开的实施例所述的计算机可读存储介质并不限定于上述所给实施例,例如还可以为电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0138]
本领域的技术人员能够理解的是,在不冲突的前提下,上述各优选方案可以自由地组合、叠加。其中,附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生,例如,两个接连表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。本文中对于各步骤的编号仅为了方便说明和引用,并不用于限定前后顺序,具体的执行顺序是由技术本身确定的,本领域技术人员可以根据技术本身确定各种允许的、合理的顺序。
[0139]
需要说明的是,本发明中采用步骤编号(字母或数字编号)来指代某些具体的方法步骤,仅仅是出于描述方便和简洁的目的,而绝不是用字母或数字来限制这些方法步骤的顺序。本领域的技术人员能够明了,相关方法步骤的顺序,应由技术本身决定,不应因步骤编号的存在而被不适当地限制,本领域技术人员可以根据技术本身确定各种允许的、合理的步骤顺序。
[0140]
本领域的技术人员能够理解的是,在不冲突的前提下,上述各优选方案可以自由地组合、叠加。
[0141]
应当理解,上述的实施方式仅是示例性的,而非限制性的,在不偏离本发明的基本原理的情况下,本领域的技术人员可以针对上述细节做出的各种明显的或等同的修改或替换,都将包含于本发明的权利要求范围内。
技术特征:
1.一种表格数据转换方法,其特征在于,包括:步骤s1,获取源表格字符串数据,所述源表格字符串数据包括l行数据,其中,l为正整数,l≥1;步骤s2,将所述源表格字符串数据的当前行数据以空白符为分隔转换为第一字符串数组,其中,若所述当前行数据的第1个字符为空白符,则在所述第一字符串数组的第1项写入一个空字符串;步骤s3,根据所述当前行数据和所述第一字符串数组生成第二字符串数组,其中,所述第二字符串数组包括所述第一字符串数组中的所有字符串,在所述当前行数据中第n1个非空字符之前存在与其相邻的s个空白符时,s为正整数,若s≥2且所述s个空白符为连续的空白符,则所述第二字符串数组中所述第n1个非空字符所属的字符串和其前一项字符串之间写入有(s-1)个空字符串;步骤s4,将所述第二字符串数组输入目标表格。2.根据权利要求1所述的表格数据转换方法,其特征在于,所述步骤s3,包括:步骤s32,将所述第一字符串数组中的第1项字符串写入所述第二字符串数组;步骤s34,通过公式s=g
k-j
k-1-g
k-1
计算s,其中,g
k
为所述第一字符串数组中第k项字符串的第1个字符在所述当前行数据中的位置序号,j
k-1
为所述第一字符串数组中第k-1项字符串的长度,g
k-1
为所述第一字符串数组中第k-1项字符串的第1个字符在所述当前行数据中的位置序号,所述第k项字符串的第1个字符为所述第n1个非空字符,k为正整数且k的初始值为2;步骤s36,将(s-1)个空字符串逐个作为新的末尾项写入所述第二字符串数组;步骤s38,将所述第一字符串数组中第k项字符串作为新的末尾项写入所述第二字符串数组;步骤s39,将k设为(k+1)并跳转至步骤s34,直到k=m,其中,m为所述第一字符串数组中包含的字符串的总项数。3.根据权利要求2所述的表格数据转换方法,其特征在于,所述步骤s36之前,所述方法还包括:步骤s3601,判断s是否大于1;若是,则执行所述步骤s36;若否,则执行所述步骤s38。4.根据权利要求2所述的表格数据转换方法,其特征在于,所述步骤s34包括:步骤s341,从所述当前行数据的第n2个字符开始查找所述第一字符串数组中第k项字符串的第1个字符,得到位置序号g
k
,其中,n2的初始值为所述第一字符串数组中第1项非空字符串的长度与所述当前行数据中第1个非空字符之前存在的空白符的数量s1的和加1;步骤s342,获取g
k-1
,其中,k=2时g
k-1
=1,k>2时g
k-1
为上一次执行所述步骤s341得到的g
k
;步骤s343,获取j
k-1
,并通过公式s=g
k-j
k-1-g
k-1
计算s;所述步骤s39之前,所述方法还包括:步骤s3901,获取所述第一字符串数组中第k项字符串的长度j
k
,将n2设为(n2+s+j
k
)。5.根据权利要求2所述的表格数据转换方法,其特征在于,所述步骤s1之后,所述方法
还包括:步骤s110,将所述源表格字符串数据以换行符为分隔转换为第三字符串数组,其中,所述第三字符串数组包括l项字符串,所述第三字符串数组中第e项字符串中的字符为所述源表格字符串数据的第e行字符,e为正整数,1≤e≤l;所述步骤s2包括:步骤s21,将所述第三字符串数组中第e项字符串确定为所述当前行数据,其中,e的初始值为1;所述步骤s39之后,所述方法还包括:步骤s3910,将e设为(e+1),将k重置为2,并跳转至所述步骤s2。6.根据权利要求5所述的表格数据转换方法,其特征在于,所述步骤s110之前,所述方法还包括:将所述源表格字符串数据中所包含的所有换行符的类型转换为目标类型。7.根据权利要求1所述的表格数据转换方法,其特征在于,所述步骤s3之后,所述方法还包括:步骤s310,获取生成的每个第二字符串数组中包含的字符串的项数,取其中的最大值x;步骤s320,生成包含l行
×
x列个输入框的所述目标表格;所述步骤s4包括:步骤s41,将生成的所有第二字符串数组输入至所述目标表格的输入框,其中,每个输入框输入一个字符串。8.根据权利要求7所述的表格数据转换方法,其特征在于,所述步骤s3包括:步骤s31,为所述第二字符串数组的每项字符串添加行序号标识,其中,所述行序号为该字符串所属的第二字符串数组所对应的行数据的行号;所述步骤s41,包括:步骤s411,获取当前第二字符串数组中的每项字符串的项序号;步骤s412,将所述当前第二字符串数组中的每项字符串,根据其行序号l
i
和项序号x
j
,分别输入至所述目标表格中第l
i
行第x
j
列的输入框中,其中,i和j均为正整数,1≤i≤l,1≤i≤x。9.一种表格数据转换设备,其特征在于,包括:处理器和存储器,所述存储器用于存储可执行指令,其特征在于,所述可执行指令使所述处理器执行如权利要求1-8任意一项所述的表格数据转换方法的操作。10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被执行时实现如权利要求1-8任意一项所述的表格数据转换方法的操作。
技术总结
本发明涉及数据转换技术领域,提供了一种表格数据转换方法、设备及计算机可读存储介质。本发明通过将源表格字符串数据的当前行数据以空白符为分隔转换为第一字符串数组,将第一字符串数组中的所有字符串写入第二字符串数组中,并根据当前行数据中相邻的两个第一字符串数组中的字符串之间存在的空白符的数量,在第二字符串数组的对应位置写入空字符串以表示源表格数据中存在的空数据栏,使得将能够体现源表格数据中存在的空数据栏的第二字符串数组在输入目标表格后,得到的目标表格不会存在数据栏位错位的问题,使表格数据的转换更加准确。加准确。加准确。
技术研发人员:周振洋
受保护的技术使用者:深圳市鸿合创新信息技术有限责任公司
技术研发日:2023.05.15
技术公布日:2023/8/9
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/