一种报表数据采集方法及系统与流程
- 国知局
- 2024-12-06 12:54:31
本说明书一个或多个实施例涉及数据采集,尤其涉及一种报表数据采集方法及系统。
背景技术:
1、报表通过采集各种数据表上的数据生成,具体可以是:先将各种数据表上传至报表生成系统,然后在报表生成系统上选择所需要生成报表的模板并设置好相关的参数信息,接着报表生成系统会自动从各种数据表上采集所需的数据,最后报表生成系统对所采集的数据进行加工处理以形成所需的报表。
2、当数据表上的数据发生变化时,需要重新生成一遍报表,即需要重新采集一遍数据表上的数据。当某一报表的生成需要采集大量数据表上的数据且这些数据表上的数据有可能经常变更时,会使得报表数据采集非常耗时。
技术实现思路
1、为了解决上述问题,本说明书一个或多个实施例描述了一种报表数据采集方法及系统。
2、根据第一方面,提供了一种报表数据采集方法,该方法包括:
3、s1.获取第一数据表和第二数据表,并基于第一数据表获取第一数据表图片以及基于第二数据表获取第二数据表图片;
4、s2.基于第一数据表图片与第二数据表图片获取差异图片;
5、s3.在差异图片上获取差异点,并确定获取得到的差异点的差异点位置信息;
6、s4.若获取得到差异点,则根据差异点的差异点位置信息在第一数据表图片获取第一数据值并根据差异点位置信息在第二数据表图片获取对应的第二数据值;
7、将第一数据值与对应的第二数据值进行比对以判定第一数据值是否发生变化,当第一数据值发生变化时,确定第一数据值在报表中的填设位置,并基于第二数据值对填设位置中的报表数据值进行更新。
8、优选的,s2具体包括:
9、s21.将第一数据表图片与第二数据表图片进行二值化做差处理以得到差异图片一;
10、s22.判定差异图片一上是否存在竖向线和/或横向线,若不存在竖向线和/或横向线,则将差异图片一作为差异图片;若存在竖向线和/或横向线,则进入s23;
11、s23.若存在竖向线,则获取竖向线位置信息,并基于竖向线位置信息在第一数据表图片上确定第一竖向分割线以及在述第二数据表图片上确定第二竖向分割线;若存在横向线,则获取横向线位置信息,并基于横向线位置信息在第一数据表图片上确定第一横向分割线以及在述第二数据表图片上确定第二横向分割线;
12、基于第一竖向分割线和/或第一横向分割线对第一数据表图片进行图像分割以得到至少两张第一数据表子图片,并判定全部第一数据表子图片中是否只有一张第一数据表子图片为非空白图片,若是,则将差异图片一作为差异图片;若否,则进入s24;
13、s24.基于第二竖向分割线和/或第二横向分割线对第二数据表图片进行图像分割以得到至少两张第二数据表子图片;
14、获取位于第一数据表图片最右侧或最下侧或最右下侧的第一数据表子图片以及获取位于第二数据表图片最右侧或最下侧或最右下侧的第二数据表子图片,对第二数据表子图片进行切割或扩充以使得第二数据表子图片的大小与对应的第一数据表子图片的大小相同,并将第一数据表子图片与第二数据表子图片进行二值化做差处理以得到子差异图片;
15、判定子差异图片上是否存在竖向线和/或横向线,若不存在竖向线和/或横向线,则进入s25;若存在竖向线和/或横向线,则返回s23;
16、s25.去除与第一数据表图片中最右侧的表格竖向线重合的第一竖向分割线以及去除与第一数据表图片中最下方的表格横向线重合的第一横向分割线,并基于剩下的第一竖向分割线和/或第一横向分割线对第一数据表图片进行图像分割以得到至少两张第一数据表子图片;
17、去除与第二数据表图片中最右侧的表格竖向线重合的第二竖向分割线以及去除与第二数据表图片中最下方的表格横向线重合的第二横向分割线,并基于剩下第二竖向分割线和/或第二横向分割线对第二数据表图片进行图像分割以得到至少两张第二数据表子图片;
18、对全部第二数据表子图片进行切割或扩充以使得第二数据表子图片的大小与对应第一数据表子图片的大小相同,将全部第一数据表子图片与全部第二数据表子图片进行一对一二值化做差处理以得到两张以上差异图片二,并将全部差异图片二均作为差异图片。
19、优选的,s22中,判定差异图片一上是否存在竖向线和/或横向线具体包括:
20、获取差异图片一中值为一的竖向连续像素点,当竖向连续像素点的像素点个数大于第一个数阈值时,判定竖向连续像素点为一条竖向线,第一个数阈值为差异图片一的竖边总像素个数乘以第一预设占比值;
21、获取差异图片一中值为一的横向连续像素点,当横向连续像素点的像素点个数大于第二个数阈值时,判定横向连续像素点为一条横向线,第二个数阈值为差异图片一的横边总像素个数乘以第二预设占比值。
22、优选的,在s23前还包括:
23、对第一数据表图片中的竖向线以及横向线进行序号标记以得到数据表参照图片;
24、s23中,获取竖向线位置信息具体包括:
25、将差异图片一与数据表参照图片进行比对以确定由左往右方向上第一条比对重合的竖向线,并通过数据表参照图片获取第一条比对重合的竖向线的竖向线序号,并将竖向线序号作为竖向线位置信息;
26、s23中,获取横向线位置信息具体包括:
27、将差异图片一与数据表参照图片进行比对以确定由上往下方向上第一条比对重合的横向线,并通过数据表参照图片获取第一条比对重合的横向线的横向线序号,并将横向线序号作为横向线位置信息。
28、优选的,在s3之前还包括:
29、当差异图片为两张以上时,基于s25中剩余的第一竖向分割线和/或第一横向分割线对数据表参照图片进行图像分割以得到与第一数据表子图片一一对应的数据表参照子图片;
30、s3具体包括:
31、s31.判定差异图片是否为空白图片,当差异图片为非空白图片时,进入s32;
32、s32.在差异图片上设置滑动框,统计滑动框内值为一的像素点的个数,当值为一的像素点的个数大于第三个数阈值时,判定滑动框在当前位置具有差异点,并将差异点在差异图片上进行标记;
33、s33.将具有差异点的差异图片与数据表参照图片或与对应的数据表参照子图片进行比对以确定位于差异点上方的上横向线序号、位于差异点下方的下横向线序号、位于差异点左边的左竖向线序号以及位于差异点右边的右竖向线序号,并将上横向线序号、下横向线序号、左竖向线序号以及右竖向线序号作为差异点的差异点位置信息。
34、根据第二方面,提供了一种报表数据采集系统,该系统包括:
35、数据表图片获取模块,用于获取第一数据表和第二数据表,并基于第一数据表获取第一数据表图片以及基于第二数据表获取第二数据表图片;
36、差异图片获取模块,用于基于第一数据表图片与第二数据表图片获取差异图片;
37、差异点位置信息获取模块,用于在差异图片上获取差异点,并确定获取得到的差异点的差异点位置信息;
38、数据值获取模块,用于若获取得到差异点,则根据差异点的差异点位置信息在第一数据表图片获取第一数据值并根据差异点位置信息在第二数据表图片获取对应的第二数据值;
39、数据值变化判定模块,用于将第一数据值与对应的第二数据值进行比对以判定第一数据值是否发生变化;
40、报表数据值更新模块,用于当第一数据值发生变化时,确定第一数据值在报表中的填设位置,并基于第二数据值对填设位置中的报表数据值进行更新。
41、优选的,差异图片获取模块包括:
42、差异图片一获取单元,用于将第一数据表图片与第二数据表图片进行二值化做差处理以得到差异图片一;
43、差异图片确定单元一,用于判定差异图片一上是否存在竖向线和/或横向线,若不存在竖向线和/或横向线,则将差异图片一作为差异图片;
44、分割线确定单元,用于若存在竖向线,则获取竖向线位置信息,并基于竖向线位置信息在第一数据表图片上确定第一竖向分割线以及在述第二数据表图片上确定第二竖向分割线;若存在横向线,则获取横向线位置信息,并基于横向线位置信息在第一数据表图片上确定第一横向分割线以及在述第二数据表图片上确定第二横向分割线;
45、第一数据表子图片获取单元,用于基于第一竖向分割线和/或第一横向分割线对第一数据表图片进行图像分割以得到至少两张第一数据表子图片;
46、差异图片确定单元二,用于判定全部第一数据表子图片中是否只有一张第一数据表子图片为非空白图片,若是,则将差异图片一作为差异图片;
47、第二数据表子图片获取单元,用于基于第二竖向分割线和/或第二横向分割线对第二数据表图片进行图像分割以得到至少两张第二数据表子图片;
48、子差异图片获取单元,用于获取位于第一数据表图片最右侧或最下侧或最右下侧的第一数据表子图片以及获取位于第二数据表图片最右侧或最下侧或最右下侧的第二数据表子图片,对第二数据表子图片进行切割或扩充以使得第二数据表子图片的大小与对应的第一数据表子图片的大小相同,并将第一数据表子图片与第二数据表子图片进行二值化做差处理以得到子差异图片;
49、子差异图片判定单元,用于判定子差异图片上是否存在竖向线和/或横向线;
50、第一数据表子图片确定单元,用于去除与第一数据表图片中最右侧的表格竖向线重合的第一竖向分割线以及去除与第一数据表图片中最下方的表格横向线重合的第一横向分割线,并基于剩下的第一竖向分割线和/或第一横向分割线对第一数据表图片进行图像分割以得到至少两张第一数据表子图片;
51、第二数据表子图片确定单元,用于去除与第二数据表图片中最右侧的表格竖向线重合的第二竖向分割线以及去除与第二数据表图片中最下方的表格横向线重合的第二横向分割线,并基于剩下第二竖向分割线和/或第二横向分割线对第二数据表图片进行图像分割以得到至少两张第二数据表子图片;
52、差异图片确定单元三,用于对全部第二数据表子图片进行切割或扩充以使得第二数据表子图片的大小与对应第一数据表子图片的大小相同,将全部第一数据表子图片与全部第二数据表子图片进行一对一二值化做差处理以得到两张以上差异图片二,并将全部差异图片二均作为差异图片。
53、优选的,差异图片确定单元一包括:
54、竖向线判定子单元,用于获取差异图片一中值为一的竖向连续像素点,当竖向连续像素点的像素点个数大于第一个数阈值时,判定竖向连续像素点为一条竖向线,第一个数阈值为差异图片一的竖边总像素个数乘以第一预设占比值;
55、横向线判定子单元,用于获取差异图片一中值为一的横向连续像素点,当横向连续像素点的像素点个数大于第二个数阈值时,判定横向连续像素点为一条横向线,第二个数阈值为差异图片一的横边总像素个数乘以第二预设占比值。
56、优选的,系统还包括:
57、数据表参照图片获取模块,用于对第一数据表图片中的竖向线以及横向线进行序号标记以得到数据表参照图片;
58、分割线确定单元包括:
59、竖向线位置信息获取子单元,用于将差异图片一与数据表参照图片进行比对以确定由左往右方向上第一条比对重合的竖向线,并通过数据表参照图片获取第一条比对重合的竖向线的竖向线序号,并将竖向线序号作为竖向线位置信息;
60、横向线位置信息获取子单元,用于将差异图片一与数据表参照图片进行比对以确定由上往下方向上第一条比对重合的横向线,并通过数据表参照图片获取第一条比对重合的横向线的横向线序号,并将横向线序号作为横向线位置信息。
61、优选的,系统还包括:
62、数据表参照子图片获取模块,用于当差异图片为两张以上时,基于剩余的第一竖向分割线和/或第一横向分割线对数据表参照图片进行图像分割以得到与第一数据表子图片一一对应的数据表参照子图片;
63、差异点位置信息获取模块包括:
64、差异图片判定单元,用于判定差异图片是否为空白图片;
65、差异点获取标记单元,用于在非空白的差异图片上设置滑动框,统计滑动框内值为一的像素点的个数,当值为一的像素点的个数大于第三个数阈值时,判定滑动框在当前位置具有差异点,并将差异点在差异图片上进行标记;
66、差异点位置信息确定单元,用于将具有差异点的差异图片与数据表参照图片或与对应的数据表参照子图片进行比对以确定位于差异点上方的上横向线序号、位于差异点下方的下横向线序号、位于差异点左边的左竖向线序号以及位于差异点右边的右竖向线序号,并将上横向线序号、下横向线序号、左竖向线序号以及右竖向线序号作为差异点的差异点位置信息。
67、有益效果
68、本说明书实施例提供的方法及系统,能够非常快速地判定数据表是否发生了变化,当某一数据表没有发生变化时,能够直接跳过该数据表以对下一数据表进行处理,而不是对该数据表重新采集一遍数据,进而有效提高了数据采集效率;当某一数据表发生变化时,也能够通过差异图片的差异点快速找到发生变化的数据值,只需要采集数据表上发生变化的数据值即可,不需要对数据表上全部的数据值都采集一遍,因此还是能够提高数据采集效率,进而能够减少数据表变更后的数据采集时耗。
本文地址:https://www.jishuxx.com/zhuanli/20241204/343007.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表