CN109829143A - 一种在线表格汇总方法及装置 - Google Patents
一种在线表格汇总方法及装置 Download PDFInfo
- Publication number
- CN109829143A CN109829143A CN201811627708.4A CN201811627708A CN109829143A CN 109829143 A CN109829143 A CN 109829143A CN 201811627708 A CN201811627708 A CN 201811627708A CN 109829143 A CN109829143 A CN 109829143A
- Authority
- CN
- China
- Prior art keywords
- project
- oid
- template
- project table
- local
- 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.)
- Granted
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种在线表格汇总方法及装置,所述在线表格包括模板表格和项目表格,项目表格是基于模板表格生成的,一个项目表格的OID号和用于生成该项目表格的模板表格的OID号相同,所述方法包括:获得由设有累加标记的目标模板表格生成的各个目标项目表格;将所述各个目标项目表格的目标单元格中的数值累加,生成由累加值形成的汇总表格,其中,表格的目标单元格为在表格中所处位置与累加标记在所述目标模板表格中所处位置相同的单元格。应用本发明实施例,实现了提高在线表格汇总的效率。
Description
技术领域
本发明涉及在线表格领域,尤其涉及一种在线表格汇总方法及装置。
背景技术
在线表格是指可以通过计算机、手机或平板电脑等设备在网络上创建的表格,这类表格可以被多人编辑,表格内容的变化性较大。随着业务项目的不断发展,完成一个项目可能由大量在线表格构成,例如,一个项目有100多个子项目,每个子项目可以包含300张工作簿,每个工作簿包含3张在线电子表格在线表格,那么完成该项目一共包括9万张在线表格。为了对项目进行分析,通常需要对项目中的同类表格进行汇总,因此,研究一种在线表格汇总方法变得越来越重要。
现有的在线表格汇总方法通常是这样实现的:先由各工作人员制作各自的表格,再通过邮件或U盘等形式在各表格集中在一起,再由工作人员统一对项目中各下级项目中的同类表格进行累加计算,将累加值填入汇总表格,以完成在线表格的汇总。采用这种方法,需要人工逐个获取单元格中的数值并进行累加,因此,在线表格的汇总效率较低。
发明内容
本发明的目的在于克服现有技术之缺陷,提供了一种在线表格汇总方法及装置,以实现提高在线表格汇总的效率。
本发明是这样实现的:
第一方面,本发明提供一种在线表格汇总方法,所述在线表格包括模板表格和项目表格,项目表格是基于模板表格生成的,一个项目表格的OID号和用于生成该项目表格的模板表格的OID号相同,所述方法包括:
获得由设有累加标记的目标模板表格生成的各个目标项目表格;
将所述各个目标项目表格的目标单元格中的数值累加,生成由累加值形成的汇总表格,其中,表格的目标单元格为在表格中所处位置与累加标记在所述目标模板表格中所处位置相同的单元格。
可选的,所述获得由设有累加标记的目标模板表格生成的各个目标项目表格,包括:
在检测到合并请求后,从服务器加载不同于本地缓存的项目表格,用所加载的项目表格更新本地缓存的项目表格;
将更新后的本地缓存的所有项目表格中OID号与所述目标模板表格的OID号相同的各个项目表格作为各个目标项目表格。
可选的,从服务器加载不同于本地缓存的项目表格,用所加载的项目表格更新本地缓存的项目表格,包括:
针对本地已缓存的每一项目表格,获得该项目表格的本地版本号、ID号和OID号;确定具有该OID号的相应模板表格,并从服务器获得具有该ID号的项目表格的源版本号;判断该项目表格的本地版本号和源版本号是否相同;若不相同,则从服务器拉取具有该ID号的项目表格,用所拉取的项目表格更新本地已缓存的该项目表格,将更新后的项目表格作为待合并项目表格;若相同,则将本地已缓存的该项目表格作为待合并项目表格;将该待合并项目表格和所确定的相应模板表格合并,用合并结果更新该待合并项目表格。
可选的,确定具有该OID号的相应模板表格,包括:
从服务器获得具有该OID号的模板表格的源版本号;判断具有该OID号的模板表格的本地版本号与源版本号是否相同;若不相同,则从服务器拉取具有该OID号的模板表格,用所拉取的模板表格更新本地缓存的具有该OID号的模板表格,将更新后的模板表格确定为具有该OID号的相应模板表格;若相同,将本地缓存的具有该OID号的模板表格确定为具有该OID号的相应模板表格。
可选的,所述方法还包括:
构建差额表格;其中所述差额表格中目标单元格的数值为负值;
将所述汇总表格中目标单元格的数值与所述差额表格中目标单元格的数值累加,用累加结果更新所述汇总表格。
可选的,所述方法还包括:
将所述汇总表格目标单元格的数值作为各个目标项目表格的目标单元格中的数值。
可选的,从服务器加载的项目表格为压缩表格,在用所加载的项目表格更新本地缓存的项目表格之前,所述方法还包括对所加载的项目表格进行解压缩;
所述用所加载的项目表格更新本地缓存的项目表格,包括用解压缩后的项目表格更新本地缓存的项目表格。
第二方面,本发明提供一种在线表格汇总装置,所述在线表格包括模板表格和项目表格,项目表格是基于模板表格生成的,一个项目表格的OID号和用于生成该项目表格的模板表格的OID号相同,所述装置包括:
获得模块,用于获得由设有累加标记的目标模板表格生成的各个目标项目表格;
累加模块,用于将所述各个目标项目表格的目标单元格中的数值累加,生成由累加值形成的汇总表格,其中,表格的目标单元格为在表格中所处位置与累加标记在所述目标模板表格中所处位置相同的单元格。
可选的,所述获得模块获得由设有累加标记的目标模板表格生成的各个目标项目表格,具体为:
在检测到合并请求后,从服务器加载不同于本地缓存的项目表格,用所加载的项目表格更新本地缓存的项目表格;
将更新后的本地缓存的所有项目表格中OID号与所述目标模板表格的OID号相同的各个项目表格作为各个目标项目表格。
可选的,所述获得模块从服务器加载不同于本地缓存的项目表格,用所加载的项目表格更新本地缓存的项目表格,具体为:
针对本地已缓存的每一项目表格,获得该项目表格的本地版本号、ID号和OID号;确定具有该OID号的相应模板表格,并从服务器获得具有该ID号的项目表格的源版本号;判断该项目表格的本地版本号和源版本号是否相同;若不相同,则从服务器拉取具有该ID号的项目表格,用所拉取的项目表格更新本地已缓存的该项目表格,将更新后的项目表格作为待合并项目表格;若相同,则将本地已缓存的该项目表格作为待合并项目表格;将该待合并项目表格和所确定的相应模板表格合并,用合并结果更新该待合并项目表格。
本发明具有以下有益效果:应用本发明实施例,通过在模板表格中设置累加标记,可以准确获取待汇总的各个目标项目表格,进而可以将各个目标项目表格的目标单元格中的数值累加,并生成由累加值形成的汇总表格,整个过程无需人工参与,避免了人工计算错误而造成的汇总错误,减低了汇总表格的出错率,并且提高了在线表格汇总的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的在线表格汇总方法的一种流程示意图;
图2为本发明实施例提供的在线表格汇总装置的一种结构示意图;
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
需要说明的是,本发明所提供的在线表格汇总方法可以应用于电子设备,其中,在具体应用中,该电子设备可以为计算机、个人电脑、平板、手机等等,这都是合理的。另外,实现本发明实施例所提供的在线表格汇总方法的功能软件可以为专门的在线表格汇总软件,也可以为具有在线表格汇总功能的软件中的插件。本发明对电子设备中的运行系统不做限定,例如可以是LINUX操作系统或Windows操作系统或UNIX操作系统等。
参见图1,本发明实施例提供一种在线表格汇总方法,在线表格包括项目表格和模板表格,每个项目表格可以是基于一个模板表格生成的,一个项目表格的OID号和用于生成该项目表格的模板表格的OID号可以相同,方法包括如下步骤:
S101、获得由设有累加标记的目标模板表格生成的各个目标项目表格;
S102、将各个目标项目表格的目标单元格中的数值累加,生成由累加值形成的汇总表格,其中,表格的目标单元格为在表格中所处位置与累加标记在所述目标模板表格中所处位置相同的单元格。
目标模板表格可以是设有累加标记的模板表格,模板表格可以是预先构建的基础表格,通过复制模板表格,可以快速的生成项目表格。需要说明的是,一个项目可以包括多个子项目,每个子项目还可以包括多个下级子项目,从而形成项目的多层级结构。每个项目、子项目、下级子项目中均可以包括模板表格和项目表格,为了能够统一对属于某个项目的所有下级项目(包括该项目的子项目、以及子项目的下级子项目等)的数据汇总,可以在属于该项目的模板表格中设置累加标记,进而由该模板表格生成的各个项目表格中均包含该累加标记。从而可以将各个项目表格中累加标记所在单元格中的数值累加,得到累加值。若模板表格设置有多个累加标记,则可以得到多个累加值,进而可以生成由各个累加值形成的汇总表格。
需要说明的是,本发明的模板表格和项目表格均可以包括OID(ObjectIdentifier,对象标识符)号和ID(identification,标识)号,其中,每个模板表格的OID号和ID号相同,项目表格的OID号和用于生成该项目表格的模板表格的OID号相同,每个项目表格的OID号和ID号不同,模板表格的ID号用于唯一标识模板表格,项目表格的ID号用于唯一标识项目表格。通过OID号可以快速的确定项目表格与模板表格之间的关系,从而快速确定出由同一模板表格生成的各项目表格。本发明对ID号、OID号的具体形式不做限定,例如,可以是由数字、字母、下划线等字符中的一种或组合形成的字符串。
由于模板表格中的单元格中可能没有具体的数值,并且累加参数在各个项目表格中,因此,在模板表格中无法设置真正的累加函数,另外,项目表格中累加标记所在的单元格可能还包括其他函数,例如跨表函数,而在汇总项目时,需要将该单元格的执行函数变成累加函数,为了解决这些问题,可以在模板表格中添加累加标记。
对于一个大的项目,项目可能包括多个层级的子项目,使得项目的数据量很大,为了避免占用电子设备过多的内存,在将所述各个目标项目表格的目标单元格中的数值累加之前,所述方法还包括:
遍历所获得的各个目标项目表格中每个单元格,针对每一单元格,将该单元格value字段对应的value值存储于变量中;
将所述各个目标项目表格的目标单元格中的数值累加,包括:
从所述变量中获取value值,将累加标记在所述目标模板表格中所处位置确定为目标位置;通过JS(JavaScript)对象的方式获取处于各目标项目表格中所述目标位置的各目标单元格中的目标value值,并将所获取的各目标value值进行累加。
应用本发明实施例,由于内存存储的是变量,而变量中仅存储了value值,过滤了除value值之外的所有数据,例如,单元格的样式数据、边框数据、颜色数据、单元格中的公式等,故减少了内存中存储的数据,可以避免占用电子设备过多的内存。
本发明对生成汇总表格的方式不做限定,例如,在将所获取的各目标value值进行累加的过程中,可以通过SpreadJS(在线表格编辑器)内置事件触发相关函数的执行,将累加标记替换为累加函数,并将各目标value值置于累加函数的参数当中,将累加函数用SpreadJS内置的SetFormula(一种用于设置公式的方法)设置到处于目标位置的单元格中,在单元格设置累加函数后,可以触发累加函数的执行,得到各个累加值,并可以将各个累加值渲染到SpreadJS所生成表格中的各个目标单元格中,得到汇总表格。
本发明对累加函数的具体形式不做限定,累加函数可以是基于SpreadJS的自定义函数,注册名可以为addup函数或者也可以为其他名称,注册函数后,通过上述方式获取累加值,通过SpreadJS自定义的包含渲染数据方法的函数将累加值渲染到在线编辑器对应的单元格中。
应用本发明实施例,通过在模板表格中设置累加标记,可以准确获取待汇总的各个目标项目表格,进而可以将各个目标项目表格的目标单元格中的数值累加,并生成由累加值形成的汇总表格,整个过程无需人工参与,避免了人工计算错误而造成的汇总错误,减低了汇总表格的出错率,并且提高了在线表格汇总的效率。
一种实现方式中,在计算完成之后,还可以检测各子项目参与计算的情况,并可以用表格或列表形式列出参与计算和未参与计算的各子项目的名称,以方便用户检查数据的正确性和对错误数据结果问题的排查。
另外,本发明对基于模板表格生成项目表格的具体方式不做限定,例如可以包括以下步骤:
步骤一、在操作界面显示模板表格列表,在检测到用户在模板表格列表中选择的模板表格后,对用户所选的模板表格进行复制,得到模板数据,并用所得的模板数据生成项目表格;该项目表格的OID号与用户所选的模板表格的OID号相同;
步骤二、在获得用户在所生成的项目表格中键入的项目数据后,采用预设合并规则,将所述项目表格中已有的模板数据和所述项目数据合并,得到由合并结果形成的项目表格:其中,所述预设合并规则为对于同一单元格,若模板数据在该单元格有值,则将所述模板数据在该单元格的值作为该单元格的值;若模板数据在该单元格无值,则将项目数据在该单元格的值作为该单元格的值。
用户可以在项目表格中键入项目数据,若某个单元格中已有模板数据,那么该单元格的值不会随着新键入的项目数据的值的变化而变化,确保了项目表格的规范性。
具体的,采用预设合并规则,将所述项目表格中已有的模板数据和所述项目数据合并,得到由合并结果形成的项目表格,可以包括:将所述项目表格中已有的模板数据和所述项目数据分别转换为第一JSON对象和第二JSON对象;对于所述项目表格中的每一单元格,若第一JSON对象在该单元格有值,则将所述第一JSON对象的值作为该单元格的值;若第一JSON对象在该单元格无值,则将所述第二JSON对象在该单元格的值作为该单元格的值。
JSON(JavaScript Object Notation,JS对象简谱)是一种轻量级的数据交换格式,,模板数据和项目数据可以均是采用JSON字符串的形式,以及将其转化为JSON对象,可以快速的实现数据合并。本发明对JSON对象和JSON字符串之间的相互转换不做限定,可以采用现有的转换方式进行转换。
或者在其他实施方式中,也可以采用其他方式设计预设合并规则,本发明对此不做限定。例如,还可以采用JQuery合并两个JSON对象。
应用本发明实施例,可以通过复制模板表格来新建项目中的各个项目表格,实现了提高生成项目表格的效率,并且项目中的每个项目表格都是由模版数据和项目数据合并而来,若项目数据和模板数据在某个单元格都有值,那么取模板数据在该单元格的值作为该单元格的最终值;确保了基于同一模板表格生成的各项目表格中的模板数据的统一性,保证了同一个项目之内各项目表格的一致性和规范性,达到了根据模板表格规范项目表格的目的。
在生成项目表格后,还可以利用该项目表格所包含的模板数据和项目数据生成该项目表格的版本号;在构建模板表格后,可以利用该模板表格所包含的模板数据生成该模板表格的版本号。
模板表格的模板数据可以包括该表格中的字段、各字段的字段值、单元格的样式和单元格中的公式等等。格式可以为Excel格式、csv(Comma-Separated Values,逗号分隔值)格式或xml(eXtensible Markup Language,可扩展标记语言)格式等等。本发明对具体的用模板数据生成项目表格的方式不做限定,例如,可以采用C#、ASP.NET等程序语言事先编写用于实现生成表格的方法或直接引用Excel库生成Excel表格。
用户可以通过SpreadJS预先构建模板表格,并可以在模板表格键入跨表函数,通过该跨表函数可以预先建立该模板表格与其他模板表格的跨表引用关系,该跨表引用关系可以被复制到基于该模板表格生成的项目表格中。跨表函数的参数格式为:(”[oid:sheetindex]sheetname”,cell),其中,oid表示待引用的目标表格的OID号,sheetindex表示表示待引用数据所在的目标表单的索引号,sheetname表示待引用数据所在的目标表单的名称,cell表示待引用数据所在的单元格区域。
项目表格与模板表格可以看作是数据库存储两张数据表,若在模板表格中预先设有跨表引用函数,则基于复制该模板表格而生成的各项目表格中也会包含该跨表引用函数,由于跨表引用函数将OID号作为参数之一,而项目表格的OID号与用于生成该项目表格的模板表格的OID号相同,在模板表格中预先设计的具有跨表引用关系的各表格的OID号在项目中均不会变化,因此,模板表格中的跨表引用关系可以直接被复制到项目表格中,从而项目表格可以直接获得并使用该跨表引用关系,无需在项目表格中重新建立该跨表引用关系,从而实现了简化项目表格的新建过程,便于快速的生成所需的项目表格。
另外,模板表格和项目表格在构建完成后,表格中的数据均可以分别被修改。本发明对具体的修改方式不做限定,例如可以通过SpreadJS在线编辑器修改表格中的跨表函数、字段名称、字段值等表格具体内容。项目表格可以根据项目相关内容进行适应性修改,例如,填入项目相关的各字段的具体值、修改跨表引用关系等等,模板表格可以不包含具体数据值,只包含样式相关的内容,例如单元格的字体、行高等。
应用本发明实施例,由于项目表格是由复制模板表格而来的,而不是直接将模板表格作为项目表格,因此,两者之间相互独立,修改任何一方都不会对另外一方产生影响。当项目所需的项目表格与现有的模板表格有少数出入时,用户仍然可以选择使用该模板表格来新建项目,然后单独去修改项目表格中的模板数据,对于由该模板表格统一生成的各个项目表格而言,它们的OID号均与模板表格的OID号相同,因此,各个项目表格中的模板数据会随着某个项目表格中的模板数据的修改而统一被修改,实现了通过修改一个项目表格的模板数据而统一修改各个项目表格的模板数据,简化了修改过程,且便于各项目表格模板的统一。
另外,当项目所需的项目表格与现有的模板表格出入较大时,用户可以自己根据项目需求新建一套模板表格,以供生成项目表格,保证了模板表格的灵活性以及可用性。
每个在线表格还可以包括版本号(version),当其存储于服务器时,其版本号可以称为源版本号;当其缓存在本地时,其版本号可以称为本地版本号。为了保证数据的完整性和version准确性,若在线表格中的数据(data)发生变化,则该在线表格的版本号可以随之变化。version可以是用data字段的字符串生成的MD5(Message-Digest Algorithm)值,MD5是一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hashvalue),用不同的字符串生成的MD5值不同,这样可以确保data变化后version不同,从而确保数据的完整性和一致性。
可以采用MD5计算器计算所缓存的在线表格的MD5值,或者也可以采用Python、PHP等编程语言预先编写用于计算MD5值的程序,通过执行该程序来实现计算所缓存的在线表格的MD5值。另外,在其他实现方式中,也可以计算所缓存的在线表格的SHA(Secure HashAlgorithm,安全哈希算法)1值、SHA256值或SHA512值,将计算所得的SHA1值、SHA256值或SHA512值作为所缓存的在线表格的本地版本号。
对于一个大的项目,项目可能包括多个层级的子项目,使得项目的数据量很大,为了避免因不断从服务器拉取表格而影响效率,可以将表格缓存到本地,以提高表格获取效率,一种实现方式中,获得由设有累加标记的目标模板表格生成的各个目标项目表格,包括:
在检测到合并请求后,从服务器加载不同于本地缓存的项目表格,用所加载的项目表格更新本地缓存的项目表格;
将更新后的本地缓存的所有项目表格中OID号与所述目标模板表格的OID号相同的各个项目表格作为各个目标项目表格。
电子设备可以显示可供用户操作的界面,界面可以包括汇总按钮,当检测到用户点击汇总按钮后,可以从服务器加载不同于本地缓存的项目表格。从服务器加载不同于本地缓存的项目表格是指从服务器加载与本地缓存的项目表格所不相同的项目表格。
可以理解的是,本地可以已经缓存了一些模板表格和项目表格,则可以只从服务器加载不同于本地缓存的模板表格和项目表格;或者,本地也可以没有缓存模板表格和项目表格,则可以直接从服务器加载所有模板表格和项目表格具体的,从服务器加载不同于本地缓存的项目表格,用所加载的项目表格更新本地缓存的项目表格;包括:
针对本地已缓存的每一项目表格,获得该项目表格的本地版本号、ID号和OID号;确定具有该OID号的相应模板表格,并从服务器获得具有该ID号的项目表格的源版本号;判断该项目表格的本地版本号和源版本号是否相同;若不相同,则从服务器拉取具有该ID号的项目表格,用所拉取的项目表格更新本地已缓存的该项目表格,将更新后的项目表格作为待合并项目表格;若相同,则将本地已缓存的该项目表格作为待合并项目表格;将该待合并项目表格和所确定的相应模板表格合并,用合并结果更新该待合并项目表格。
例如,项目表格的本地版本号、ID号、OID号和源版本号分别为111.0、112.1213、A和111.1,由于该项目表格的本地版本号和源版本号不一致,则从服务器拉取版本号为111.1的项目表格,用拉取的项目表格更新本地缓存的项目表格,则更新后,本地缓存的项目表格的本地版本号、ID号、OID号分别为:111.1和112.1213、A;进而还可以获得具有该OID号(A)的相应模板,将更新后的项目表格和相应模板合并,用合并结果更新该项目表格,则本地缓存的项目表格即更新为用合并结果更新后的项目表格。
具体的,可以采用以下合并原则,将所确定的相应模板表格和待合并项目表格合并:若待合并项目表格和相应模板表格在某一个单元格都有值,那么取相应模板表格的值作为该单元格的最终值;这样可以确保待合并项目表格的规范性。假设相应模板表格的数据内容为A={a:1,b:{b1:2,b2:3},c:2},待合并项目表格的数据内容为B={a:2,d:3},则A与B合并得到的结果是{a:1,b:{b1:2,b2:3},c:2,d:3}。
确定具有该OID号的相应模板表格,可以包括:
从服务器获得具有该OID号的模板表格的源版本号;判断具有该OID号的模板表格的本地版本号与源版本号是否相同;若不相同,则从服务器拉取具有该OID号的模板表格,用所拉取的模板表格更新本地缓存的具有该OID号的模板表格,将更新后的模板表格确定为具有该OID号的相应模板表格;若相同,将本地缓存的具有该OID号的模板表格确定为具有该OID号的相应模板表格。
可以理解的是,可以有多个电子设备执行本发明的技术方案,每个电子设备都可以生成在线表格及其版本号、ID号和OID号,并可以将所生成的在线表格以其版本号、ID号和OID号一并上传至服务器,从而服务器可以获得并存储多个电子设备的在线表格以其版本号、ID号和OID号,某个电子设备在检测到合并请求后,从服务器获得最新版本的各个在线表格的源版本号和ID号,进而可以用在线表格的ID号去本地缓存数据库中查找,若查找到具有ID号的在线表格,可以对比该在线表格的源版本号和本地版本号是否一致,若不一致,则将该在线表格的ID号集中到一个数组中,该数组可以称为dirtIds。在对所接收的各个ID号所标识的在线表格的版本号进行比对后,可以将dirtIds发送给服务器,统一请求版本号有变化的在线表格。
从而,服务器可以返回dirtIds中各个ID号所标识的在线表格,可以理解的是,dirtIds中各个ID号所标识的在线表格包括:本地未缓存的在线表格和本地已缓存且本地版本号和源版本号不一致的在线表格,故电子设备所拉取的在线表格包括:本地未缓存的在线表格和本地已缓存且本地版本号和源版本号不一致的在线表格。对于是本地未缓存的在线表格,电子设备可以统一进行缓存,对于本地已缓存的在线表格电子设备可以进行更新。具体的,本地缓存可以采用的是pouchDB,它是基于IndexedDB的本地缓存技术,IndexedDB是一个事务型的数据库系统。
应用本发明实施例,通过将在线表格缓存在本地,从而无需在每次服务器获取在线表格,避免了因不断从服务器拉取项目表格和模板表格而影响效率,提高了后续获取在线表格的效率。并且通过比对版本号,确保了本地缓存的模板表格与服务器中的模板表格的内容一致、本地缓存的项目表格与服务器中的项目表格的内容一致,实现了对本地已缓存在线表格的及时更新,提高了本地缓存的在线表格的准确性和可靠性,因此,即使工作人员对某个表格的数据进行修改,也可以及时获取修改后的项目表格,提高了汇总的时效性和准确性。
可以采用两个缓存数据结构分别缓存模板表格和项目表格,用于存储模板表格的缓存数据结构可以包括id、data{}、version和oid,分别表示模板表格的ID号、数据、本地版本号和OID号;用于存储项目表格的缓存数据结构可以包括id、data{}、excel_id、project_id、version和oid,分别表示项目表格的ID号、数据、表单号、项目号、本地版本号和OID号。在其他实施方式中,也可以采用其他数据结构分别缓存模板表格和项目表格,本发明对具体数据结构的形式不做限定。
为了弥补汇总表格只能累加而不能抵消的不足,所述方法还包括:
构建差额表格;其中所述差额表格中目标单元格的数值为负值;
将所述汇总表格中目标单元格的数值与所述差额表格中目标单元格的数值累加,用累加结果更新所述汇总表格。
在生成汇总表格后,可以构建差额表格,该差额表格可以包括根据需求键入的负值,负值所在的单元格在差额表格中所处位置与累加标记在目标模板表格中所处位置相同,差额表格的OID号、汇总表格的OID号可以均与目标模板表格的OID号相同。
将汇总表格中目标单元格的数值与差额表格中目标单元格的数值累加,相当于将汇总表格中目标单元格的数值进行了负值抵消,弥补了汇总表格只能累加而不能抵消的不足。
示例性的,累加标记在目标模板表格中所处位置为第一行第一列的单元格,则汇总表格中目标单元格的数值即为汇总表格中处于第一行第一列的单元格的数值,假设为10,差额表格中目标单元格的数值即为差额表格中处于第一行第一列的单元格的数值,假设为-5,那么将汇总表格中目标单元格的数值与所述差额表格中目标单元格的数值累加所得的累加结果为:10+(-5)=5,更新后的汇总表格中处于第一行第一列的单元格的数值即为5。
为了提高项目表格的规范性,所述方法还包括
将所述汇总表格目标单元格的数值作为各个目标项目表格的目标单元格中的数值。
基于上述示例,汇总表格目标单元格的数值为5,各个目标项目表格的目标单元格即为各个目标项目表格中处于第一行第一列的单元格的数值,那么各个目标项目表格的目标单元格中的数值将变为5。
另外,为了提高数据传输效率,服务器可以对电子设备请求加载的在线表格进行压缩,进而对压缩后的在线表格进行传输,以提高传输效率,例如,服务器可以采用GZIP和/或LZ-string对项目表格进行压缩,从而,电子设备从服务器加载的项目表格可以为压缩表格,在用所加载的项目表格更新本地缓存的项目表格之前,所述方法还包括对所加载的项目表格进行解压缩;用所加载的项目表格更新本地缓存的项目表格,包括用解压缩后的项目表格更新本地缓存的项目表格。
与上述的方法实施例相对应,本发明实施例还提供一种在线表格汇总装置。
参见图2,图2为本发明实施例所提供的一种在线表格汇总装置的结构示意图,在线表格包括模板表格和项目表格,项目表格是基于模板表格生成的,一个项目表格的OID号和用于生成该项目表格的模板表格的OID号相同,装置包括:
获得模块201,用于获得由设有累加标记的目标模板表格生成的各个目标项目表格;
累加模块202,用于将各个目标项目表格的目标单元格中的数值累加,生成由累加值形成的汇总表格,其中,表格的目标单元格为在表格中所处位置与累加标记在目标模板表格中所处位置相同的单元格。
应用本发明实施例,通过在模板表格中设置累加标记,可以获取准确待汇总的各个目标项目表格,进而可以将各个目标项目表格的目标单元格中的数值累加,并生成由累加值形成的汇总表格,整个过程无需人工参与,避免了人工计算错误而造成的汇总错误,减低了汇总表格的出错率,并且提高了在线表格汇总的效率。
可选的,获得模块201获得由设有累加标记的目标模板表格生成的各个目标项目表格,具体为:
在检测到合并请求后,从服务器加载不同于本地缓存的项目表格,用所加载的项目表格更新本地缓存的项目表格;
将更新后的本地缓存的所有项目表格中OID号与目标模板表格的OID号相同的各个项目表格作为各个目标项目表格。
可选的,获得模块201从服务器加载不同于本地缓存的项目表格,用所加载的项目表格更新本地缓存的项目表格,具体为:
针对本地已缓存的每一项目表格,获得该项目表格的本地版本号、ID号和OID号;确定具有该OID号的相应模板表格,并从服务器获得具有该ID号的项目表格的源版本号;判断该项目表格的本地版本号和源版本号是否相同;若不相同,则从服务器拉取具有该ID号的项目表格,用所拉取的项目表格更新本地已缓存的该项目表格,将更新后的项目表格作为待合并项目表格;若相同,则将本地已缓存的该项目表格作为待合并项目表格;将该待合并项目表格和所确定的相应模板表格合并,用合并结果更新该待合并项目表格。
可选的,获得模块201确定具有该OID号的相应模板表格,具体为:
从服务器获得具有该OID号的模板表格的源版本号;判断具有该OID号的模板表格的本地版本号与源版本号是否相同;若不相同,则从服务器拉取具有该OID号的模板表格,用所拉取的模板表格更新本地缓存的具有该OID号的模板表格,将更新后的模板表格确定为具有该OID号的相应模板表格;若相同,将本地缓存的具有该OID号的模板表格确定为具有该OID号的相应模板表格。
可选的,装置还包括差额计算模块,用于:
构建差额表格;其中差额表格中目标单元格的数值为负值;
将汇总表格中目标单元格的数值与差额表格中目标单元格的数值累加,用累加结果更新汇总表格。
可选的,装置还包括更新模块,用于:将汇总表格目标单元格的数值作为各个目标项目表格的目标单元格中的数值。
可选的,从服务器加载的项目表格为压缩表格,装置还包括解压缩模块,用于在用所加载的项目表格更新本地缓存的项目表格之前,对所加载的项目表格进行解压缩;
获得模块201用所加载的项目表格更新本地缓存的项目表格,具体为用解压缩后的项目表格更新本地缓存的项目表格。
以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种在线表格汇总方法,其特征在于,所述在线表格包括模板表格和项目表格,项目表格是基于模板表格生成的,一个项目表格的OID号和用于生成该项目表格的模板表格的OID号相同,所述方法包括:
获得由设有累加标记的目标模板表格生成的各个目标项目表格;
将所述各个目标项目表格的目标单元格中的数值累加,生成由累加值形成的汇总表格,其中,表格的目标单元格为在表格中所处位置与累加标记在所述目标模板表格中所处位置相同的单元格。
2.根据权利要求1所述的方法,其特征在于,所述获得由设有累加标记的目标模板表格生成的各个目标项目表格,包括:
在检测到合并请求后,从服务器加载不同于本地缓存的项目表格,用所加载的项目表格更新本地缓存的项目表格;
将更新后的本地缓存的所有项目表格中OID号与所述目标模板表格的OID号相同的各个项目表格作为各个目标项目表格。
3.根据权利要求2所述的方法,其特征在于,从服务器加载不同于本地缓存的项目表格,用所加载的项目表格更新本地缓存的项目表格,包括:
针对本地已缓存的每一项目表格,获得该项目表格的本地版本号、ID号和OID号;确定具有该OID号的相应模板表格,并从服务器获得具有该ID号的项目表格的源版本号;判断该项目表格的本地版本号和源版本号是否相同;若不相同,则从服务器拉取具有该ID号的项目表格,用所拉取的项目表格更新本地已缓存的该项目表格,将更新后的项目表格作为待合并项目表格;若相同,则将本地已缓存的该项目表格作为待合并项目表格;将该待合并项目表格和所确定的相应模板表格合并,用合并结果更新该待合并项目表格。
4.根据权利要求3所述的方法,其特征在于,确定具有该OID号的相应模板表格,包括:
从服务器获得具有该OID号的模板表格的源版本号;判断具有该OID号的模板表格的本地版本号与源版本号是否相同;若不相同,则从服务器拉取具有该OID号的模板表格,用所拉取的模板表格更新本地缓存的具有该OID号的模板表格,将更新后的模板表格确定为具有该OID号的相应模板表格;若相同,将本地缓存的具有该OID号的模板表格确定为具有该OID号的相应模板表格。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
构建差额表格;其中所述差额表格中目标单元格的数值为负值;
将所述汇总表格中目标单元格的数值与所述差额表格中目标单元格的数值累加,用累加结果更新所述汇总表格。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述汇总表格目标单元格的数值作为各个目标项目表格的目标单元格中的数值。
7.根据权利要求1所述的方法,其特征在于,
从服务器加载的项目表格为压缩表格,在用所加载的项目表格更新本地缓存的项目表格之前,所述方法还包括对所加载的项目表格进行解压缩;
所述用所加载的项目表格更新本地缓存的项目表格,包括用解压缩后的项目表格更新本地缓存的项目表格。
8.一种在线表格汇总装置,其特征在于,所述在线表格包括模板表格和项目表格,项目表格是基于模板表格生成的,一个项目表格的OID号和用于生成该项目表格的模板表格的OID号相同,所述装置包括:
获得模块,用于获得由设有累加标记的目标模板表格生成的各个目标项目表格;
累加模块,用于将所述各个目标项目表格的目标单元格中的数值累加,生成由累加值形成的汇总表格,其中,表格的目标单元格为在表格中所处位置与累加标记在所述目标模板表格中所处位置相同的单元格。
9.根据权利要求8所述的装置,其特征在于,所述获得模块获得由设有累加标记的目标模板表格生成的各个目标项目表格,具体为:
在检测到合并请求后,从服务器加载不同于本地缓存的项目表格,用所加载的项目表格更新本地缓存的项目表格;
将更新后的本地缓存的所有项目表格中OID号与所述目标模板表格的OID号相同的各个项目表格作为各个目标项目表格。
10.根据权利要求9所述的装置,其特征在于,所述获得模块从服务器加载不同于本地缓存的项目表格,用所加载的项目表格更新本地缓存的项目表格,具体为:
针对本地已缓存的每一项目表格,获得该项目表格的本地版本号、ID号和OID号;确定具有该OID号的相应模板表格,并从服务器获得具有该ID号的项目表格的源版本号;判断该项目表格的本地版本号和源版本号是否相同;若不相同,则从服务器拉取具有该ID号的项目表格,用所拉取的项目表格更新本地已缓存的该项目表格,将更新后的项目表格作为待合并项目表格;若相同,则将本地已缓存的该项目表格作为待合并项目表格;将该待合并项目表格和所确定的相应模板表格合并,用合并结果更新该待合并项目表格。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811627708.4A CN109829143B (zh) | 2018-12-28 | 2018-12-28 | 一种在线表格汇总方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811627708.4A CN109829143B (zh) | 2018-12-28 | 2018-12-28 | 一种在线表格汇总方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109829143A true CN109829143A (zh) | 2019-05-31 |
CN109829143B CN109829143B (zh) | 2023-06-20 |
Family
ID=66860633
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811627708.4A Active CN109829143B (zh) | 2018-12-28 | 2018-12-28 | 一种在线表格汇总方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109829143B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003141447A (ja) * | 2001-11-06 | 2003-05-16 | Canon Inc | 帳票検索システム |
CN101388036A (zh) * | 2008-10-08 | 2009-03-18 | 金蝶软件(中国)有限公司 | 一种数据表的汇总方法和装置 |
KR101013810B1 (ko) * | 2010-01-15 | 2011-02-14 | (주)비아이매트릭스 | 엑셀기반 db테이블 갱신 시스템 및 방법 |
US20130151940A1 (en) * | 2011-12-12 | 2013-06-13 | Microsoft Corporation | Techniques to manage collaborative documents |
CN104391725A (zh) * | 2014-12-08 | 2015-03-04 | 畅捷通信息技术股份有限公司 | 页面展示方法和页面展示装置 |
US20150331845A1 (en) * | 2014-05-13 | 2015-11-19 | International Business Machines Corporation | Table narration using narration templates |
CN107066272A (zh) * | 2017-03-31 | 2017-08-18 | 北京奇艺世纪科技有限公司 | 一种页面更新方法及装置 |
CN107291678A (zh) * | 2016-03-31 | 2017-10-24 | 北大方正集团有限公司 | 表格拆分方法及系统 |
CN107766314A (zh) * | 2017-10-20 | 2018-03-06 | 网易(杭州)网络有限公司 | 电子表格的数据处理方法和装置 |
-
2018
- 2018-12-28 CN CN201811627708.4A patent/CN109829143B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003141447A (ja) * | 2001-11-06 | 2003-05-16 | Canon Inc | 帳票検索システム |
CN101388036A (zh) * | 2008-10-08 | 2009-03-18 | 金蝶软件(中国)有限公司 | 一种数据表的汇总方法和装置 |
KR101013810B1 (ko) * | 2010-01-15 | 2011-02-14 | (주)비아이매트릭스 | 엑셀기반 db테이블 갱신 시스템 및 방법 |
US20130151940A1 (en) * | 2011-12-12 | 2013-06-13 | Microsoft Corporation | Techniques to manage collaborative documents |
US20150331845A1 (en) * | 2014-05-13 | 2015-11-19 | International Business Machines Corporation | Table narration using narration templates |
CN104391725A (zh) * | 2014-12-08 | 2015-03-04 | 畅捷通信息技术股份有限公司 | 页面展示方法和页面展示装置 |
CN107291678A (zh) * | 2016-03-31 | 2017-10-24 | 北大方正集团有限公司 | 表格拆分方法及系统 |
CN107066272A (zh) * | 2017-03-31 | 2017-08-18 | 北京奇艺世纪科技有限公司 | 一种页面更新方法及装置 |
CN107766314A (zh) * | 2017-10-20 | 2018-03-06 | 网易(杭州)网络有限公司 | 电子表格的数据处理方法和装置 |
Non-Patent Citations (1)
Title |
---|
肖彦: "利用Excel编制科目汇总表的两种简便方法", 中国会计电算化, no. 04, pages 41 * |
Also Published As
Publication number | Publication date |
---|---|
CN109829143B (zh) | 2023-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9384511B1 (en) | Version control for resource allocation modeling | |
CN109829144A (zh) | 一种在线表格跨表引用方法及装置 | |
CN109190209B (zh) | 一种基于bim模型的弱关联方法及系统 | |
KR101999409B1 (ko) | 예시에 의한 데이터 포매팅 기법 | |
CN108829746B (zh) | 一种基于内存数据库的主数据管理系统及装置 | |
US20160378842A1 (en) | Enhanced mechanisms for managing multidimensional data | |
JP2017509971A (ja) | データへの論理的妥当性検査規則の指定および適用 | |
US20190026320A1 (en) | System for multi-release and parallel development of a database | |
US10387815B2 (en) | Continuously variable resolution of resource allocation | |
US20140289243A1 (en) | Method and system for centralized issue tracking | |
CN108021673A (zh) | 一种用户兴趣模型生成方法、职位推荐方法及计算设备 | |
CN105893259A (zh) | 代码检测系统、方法及装置 | |
CN110471694A (zh) | 注释信息处理方法、装置、计算机设备及存储介质 | |
CN107688664A (zh) | 图表生成方法、装置、计算机设备和存储介质 | |
CN109190353B (zh) | 用于自动生成证书文档的方法和计算设备 | |
KR20200046769A (ko) | 보고서 자동 생성 기반의 업무 프로세스 관리 시스템 제공 방법 | |
CN106445529A (zh) | 持续集成服务器的配置信息的备份方法及系统 | |
Steimann et al. | Generic model assist | |
US10324951B1 (en) | Tracking and viewing model changes based on time | |
CN109829141B (zh) | 一种项目表格生成方法及装置 | |
CN111931471A (zh) | 表单收集方法、装置、电子设备及存储介质 | |
CN109408502A (zh) | 一种数据标准处理方法、装置及其存储介质 | |
WO2020134930A1 (zh) | 一种基于区块链的数字资产有效期处理的方法及装置 | |
CN115794641A (zh) | 基于业务流程的造数方法、装置、设备及存储介质 | |
US20190147088A1 (en) | Reporting and data governance management |
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 |