在线表格编辑方法、装置、计算机设备及存储介质与流程

文档序号:17289188发布日期:2019-04-03 03:48阅读:212来源:国知局
在线表格编辑方法、装置、计算机设备及存储介质与流程

本发明涉及信息处理领域,尤其涉及在线表格编辑方法、装置、计算机设备及存储介质。



背景技术:

电子表格是在日常办公中经常用到的工具。目前市面上主流的电子表格工具包括微软公司的excel、金山公司的wps、以及开源的libreoffice等。各电子表格工具提供商由于竞争的需要,大力推广自己的电子表格产品,并培育起各自相对固定的用户群体。由于没有统一的行业标准,不同电子表格产品之间不能完全的兼容,给用户使用带来问题。

例如,在企业内部,各人因使用习惯的不同而可能使用不同的电子表格工具。这样使得在对共享电子表格进行访问时出现兼容性问题,如在对数学公式的引用,以及对图片、链接、文件等对象的引用时不能正常显示这些元素。同时,企业内部各部门提交电子表格数据时,或是以通过邮件附件形式发送文档,或是以直接传输文档的形式进行提交,上级部门在汇总数据时需要逐个整理不同的电子表格文档,然后提取数据,使得整理和统计数据的过程效率不高。



技术实现要素:

本发明实施例提供一种在线表格编辑方法、装置、计算机设备及存储介质,以解决电子表格兼容性差,以及提取电子表格中的数据效率低的问题。

一种在线表格编辑方法,包括:

若接收到客户端发送的登录请求,则根据所述登录请求中包含的用户标识信息对所述用户进行身份验证,并根据身份验证的结果获取所述用户所属的用户组;

将与所述用户组相应的表格编辑页面发送到所述客户端;

以第一预设时间间隔,接收所述表格编辑页面中的数据,并保存到存储平台,其中,所述存储平台用于存储用户编辑的数据;

接收所述客户端发送的数据提交请求,并获取所述数据提交请求中包含的数据提交标识信息;

将所述表格编辑页面中的数据保存到与所述数据提交标识信息相应的数据库中,其中,所述数据库用于存储用户提交的数据。

一种在线表格编辑装置,包括:

登录验证模块,用于若接收到客户端发送的登录请求,则根据所述登录请求中包含的用户标识信息对所述用户进行身份验证,并根据身份验证的结果获取所述用户所属的用户组;

页面发送模块,用于将与所述用户组相应的表格编辑页面发送到所述客户端;

自动保存模块,用于以第一预设时间间隔,接收所述表格编辑页面中的数据,并保存到存储平台,其中,所述存储平台用于存储用户编辑的数据;

提交验证模块,用于接收所述客户端发送的数据提交请求,并获取所述数据提交请求中包含的数据提交标识信息;

数据提交模块,用于将所述表格编辑页面中的数据保存到与所述数据提交标识信息相应的数据库中,其中,所述数据库用于存储用户提交的数据。

一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述在线表格编辑方法的步骤。

一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述在线表格编辑方法的步骤。

上述在线表格编辑方法、装置、计算机设备及存储介质,为用户提供了统一的在线表格编辑页面,避免了用户使用不同的本地电子表格工具进行编辑带来的兼容性问题;以预设时间间隔将用户编辑的内容保存到存储平台,实现了实时在线自动保存的功能,防止数据意外丢失;对登录的用户进行身份验证,为不同用户组的用户提供表格编辑页面;接收客户端发送的数据提交请求,并根据数据提交请求中的预设标识信息将用户提交的数据进行分类,分别保存到相应的数据库中,方便对特定用户组的用户提交的数据进行自动提取,减少了汇总不同电子表格内数据的时间,提升了数据处理的效率。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例中在线表格编辑方法的一应用环境示意图;

图2是本发明一实施例中在线表格编辑方法的流程图;

图3是本发明一实施例中导出用户编辑的数据的流程图;

图4是本发明一实施例中记录用户操作步骤的流程图;

图5是本发明一实施例中通过临时数组记录用户操作步骤的流程图;

图6是本发明一实施例中在线表格编辑方法中步骤s5的流程图;

图7是本发明一实施例中在线表格编辑装置的示意图;

图8是本发明一实施例中计算机设备的示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本申请提供的在线表格编辑方法,可应用在如图1的应用环境中,其中,服务端是提供在线表格编辑服务的计算机设备,服务端可以是服务器或服务器集群;客户端是用户进行在线表格编辑而使用的计算机终端设备,包括但不限于浏览器、手机app等;存储平台是存储用户在线表格编辑的内容的存储空间,存储平台包括提供存储空间的计算机设备、云存储平台等;数据库是存储用户在线编辑完成后提交的数据;客户端与服务端之间、服务端与存储平台之间,服务端与数据库之间通过网络连接,网络可以是有限网络或无线网络。本发明实施例提供的在线表格编辑方法应用于服务端。

在一实施例中,如图2所示,提供了一种在线表格编辑方法,其具体实现流程包括如下步骤:

s1:若接收到客户端发送的登录请求,则根据登录请求中包含的用户标识信息对用户进行身份验证,并根据身份验证的结果获取用户所属的用户组。

用户可以以注册用户的身份或匿名用户的身份登录服务端,使用在线表格编辑服务。当用户以注册用户的身份登录时,需要提供用户名和登录密码;当用户以匿名用户的身份登录时,无需提供用户名和登录密码。

服务端将用户分成不同的用户组,例如可以将用户分为注册用户的用户组和匿名用户的用户组,并对不同用户组的用户提供不同的在线表格编辑服务,例如注册用户能使用自定义表格模板功能,而匿名用户则不能使用自定义表格模板功能,等等。

服务端部署有用户数据库,用户数据库可以在服务端本地,也可以通过网络与服务端相连。用户数据库用于对登录用户的身份进行验证。具体地,用户数据库包括但不限于各种关系型或非关系型数据库,如ms-sql、oracle、mysql、sybase、db2、redis、mongoddb、hbase等。

用户数据库中存储有用户标识信息以及用户所属的用户组。其中,用户标识信息是对用户身份的标识,例如,可以是用户id(identification,身份标识)号。注册用户的用户id号在用户数据库中有相应的记录,匿名用户则没有相应的记录。用户组包括注册用户组,匿名用户组,以及其他预设的用户自定义组。具体地,用户数据库主要包括用户信息表,该表用于存储注册用户的基本信息。用户信息表包括的字段但不限于:用户id号、用户名、登录密码、用户组、工号、姓名、性别、所属的部门等等。

具体地,以用户通过浏览器向服务端发起登录请求为例,用户打开服务端的登录页面,若该用户属于注册用户,则输入用户名和登录密码;若该用户属于非注册用户,则可根据登录页面的提示跳过。服务端接收客户端发送的登录请求,并检查登录请求中的用户标识信息,若是注册用户,则用户标识信息为用户名和登录密码;若是非注册用户,则用户标识信息为空。服务端以用户标识信息作为查询条件,从用户数据库中获取用户所在的用户组的组号。其中,若服务端运行环境为java,则服务端可以通过jdbc访问用户数据库。jdbc(javadatabaseconnectivity,java数据库连接)是一种用于执行sql语句的javaapi,可以为多种关系数据库提供统一访问,它由一组用java语言编写的类和接口组成。jdbc提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。数据库开发人员通过jdbc编写的接口程序能适用于不同的数据库,而不再需要为不同的数据库分别编写接口程序,极大提高了开发效率。

s2:将与用户组相应的表格编辑页面发送到客户端。

表格编辑页面是服务端提供给客户端进行在线表格编辑的web页面,包括html文件、css文件以及js脚本。其中,html代表hypertextmarkuplanguage,是一种超文本标记语言,可以用于创建网页的标准标记语言,html运行在浏览器上,由浏览器来解析;css代表cascadingstylesheets,是层叠样式表,是一种用来表现html或xml(可扩展标记语言)等文件样式的计算机语言。css不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化;js代表javascript,javascript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。js的解释器被称为javascript引擎,为浏览器的一部分,是广泛用于客户端的脚本语言,将其应用在html网页上,给html网页增加了动态功能。

表格编辑页面部署在服务端的不同文件目录下。例如,服务端为注册用户组分配了注册用户表格编辑页面目录,在注册用户表格编辑页面目录下还包括html文件目录,css文件目录,js脚本目录。html文件目录,css文件目录以及js脚本目录下各自存放了html文件,css文件以及js脚本。可以理解地,服务端为匿名用户组分配了匿名用户表格编辑页面目录,匿名用户表格编辑页面目录同样包括了html文件、css文件以及js脚本。

表格编辑页面各自实现了不同的功能:html文件主要用于显示页面内容,css文件主要用于布局html中内容,js脚本主要用于实现数据动态交互功能。其中,html文件和css文件主要负责在线表格编辑的页面显示,js脚本又称为客户端脚本,js脚本由客户端从服务端下载并执行,负责客户端本地的数据处理以及与服务端的数据交互功能,这里的客户端主要包括浏览器。js脚本目录中可以包括若干js脚本,不同js脚本可以实现不同的功能,或由若干js脚本组合起来实现某一功能。

例如,与文件相关的操作,包括对表格进行新建、删除、复制、重命名等操作,可以分别由新建表格js脚本、删除表格js脚本、负责表格js脚本以及重命名表格js脚本来实现各自功能。以新建在线表格为例,其具体新建表格的过程为:当用户在html页面中点击新建表格按钮时,将触发新建表格js脚本中的新建表格事件,服务端接收新建表格事件后,将调用表格模板选择界面供用户选择,并等待用户做出下一步动作;当用户选择了一个表格模板后,服务端将调用用户所选择的html文件供用户编辑,从而完成新建表格的过程。其中,表格模板包括但不限于,工作日程表、签到表、成绩统计表、工作日报、通信录等。

不同的用户组可以拥有不同的表格编辑页面目录,能使用不同的在线表格编辑功能。例如,注册用户组的表格编辑目录与匿名用户组的表格编辑目录不同;同样是注册用户组的用户,企业用户的表格编辑目录与个人用户的表格编辑目录不同,等等。

服务端除了部署有表格编辑页面,还包括服务端脚本。服务端脚本是与客户端脚本相对而言的,服务端脚本部署在服务端,且在服务端运行,主要负责服务端与服务端后端之间的数据交互。其中,服务端后端包括但不限于数据库、存储平台、其他服务端等。常见的服务端脚本包括php、jsp、asp等。其中,php即php:hypertextpreprocessor,是一种通用开源脚本语言,主要适用于web开发领域;jsp全名为javaserverpages,是由sunmicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准;asp即activeserverpages,是microsoft公司开发的服务器端脚本环境,可用来创建动态交互式网页并建立强大的web应用程序。

服务端对登录用户进行身份验证后,根据用户所在的用户组,将不同的表格编辑页面发送到客户端。

具体地,服务端脚本根据用户组的组号,获取相应的表格编辑页面目录,并向浏览器发送页面跳转消息,使浏览器从相应的表格编辑页面目录下载html文件、css文件以及js脚本,从而实现将与用户组相应的表格编辑页面发送到客户端。

s3:以第一预设时间间隔,接收表格编辑页面中的数据,并保存到存储平台,其中,存储平台用于存储用户编辑的数据。

第一预设时间间隔可以是用户通过表格编辑页面中的设置功能进行自定义设置的时间间隔,同时,也可以是客户端脚本中默认的时间间隔。其中,表格编辑页面中的设置功能可以由html文件提供前端数据采集,例如以表单的方式供用户进行自定义设置;并由服务端脚本提供数据交互,例如将用户自定义设置的时间间隔值保存到服务端。第一预设时间间隔的取值可以以分钟、小时等时间为单位,默认地,第一预设时间间隔为5分钟。

表格编辑页面中的数据是用户在进行在线表格编辑时输入的数据,包括用户在html页面的所有表单中输入的数据。html页面中的所有表单均对应有表单号,当用户在表单中输入数据时,服务端可以根据表单号获取用户所输入的内容。

存储平台用于存储用户在进行在线编辑时输入的数据。存储平台提包括供存储空间的计算机设备、云存储平台等。存储平台可以向服务端提供ftp、http或https服务。服务端将接收到的表格编辑页面中的数据转发到存储平台上,以实现自动保存用户编辑的数据。

具体地,以预设时间间隔为5分钟为例,客户端脚本每隔5分钟获取当前表格编辑页面中所有单元格中的数据,并这些数据以json格式的形式发送到服务端。服务端脚本接收客户端发送的json数据,并保存到存储平台。其中,所有单元格均包含唯一的标识号,如“1-1”代表第一行第一列的单元格。json(javascriptobjectnotation,js对象简谱)是一种轻量级的数据交换格式。json文件是以ascii编码方式存储的,不依赖于操作系统,能被计算机程序快速的读取或生成,是一种流行的数据交换格式。一张在线表格被转换后的json数据可以表示为:

以上json数据中,“1-1”至“1-6”代表表格编辑页面中第一行中第一列至第六列的值,其中“1-6”单元格又包括若干子单元格。

服务端将表格编辑页面中的数据保存到存储平台,同时记录下每个单元格的标识号和单元格内的值,在需要进行表格数据还原时,可以据此进行数据还原。

s4:接收客户端发送的数据提交请求,并获取数据提交请求中包含的数据提交标识信息。

用户可以将在线编辑的内容直接提交到服务端,实现在线提交数据。在线数据提交功能可以应用于企业内部的数据收集和汇总,或其他类似应用环境。例如,企业下级部门使用服务端提供的统一规范的在线表格,并直接提交到服务端,以供上级部门收集数据。

数据提交请求是客户端在html页面中通过表单提交的数据请求。数据提交请求包括用户在线编辑的数据和数据提交标识信息。其中,数据提交标识信息是对用户在线编辑的数据的标识,数据提交标识信息可以是id号,例如可以是在线表格中某列的列名或某行的行名。

具体地,用户在客户端进行在线表格的编辑,在线表格中的每个单元格对应一个表单,每个表单有一个唯一标识的表单id号,表单id号由一个行号和一个列号组成,根据行列号可以唯一确定一个单元格的位置及里面的值。当用户点击html页面中的提交按钮时,客户端脚本向服务端发送表单数据,表单数据中包括用户在线编辑的数据,以及在线表格的行名或列名;表单数据将被对应的表单通过post()方法提交到服务端。服务端接收到客户端发送的数据提交请求,并获取表单中的数据。其中,服务端将在线表格中的数据根据行或列进行分组,得到包含若干行或列数据的数组。

s5:将表格编辑页面中的数据保存到与数据提交标识信息相应的数据库中,其中,数据库用于存储用户提交的数据。

数据库用于存储用户提交的数据,实现对用户数据的收集和汇总,为各种应用提供服务,称之为应用数据库。应用数据库通过网络与服务端相连。应用数据库包括但不限于各种关系型或非关系型数据库,如ms-sql、oracle、mysql、sybase、db2、redis、mongoddb、hbase等。应用数据库的数量可以根据应用需求预设,应用数据库的数量至少为一个。应用数据库中主要包括文档信息表,文档信息表用于存储用户提交的数据及相关信息。文档信息表中的字段包括但不限于:用户id号、用户提交数据的创建时间或修改时间、在线表格中的行名或列名等。

服务端根据数据提交标识信息,选取应用数据库中相应的表名或库名,并将将表格编辑页面中的数据保存到相应的数据库中。

举例来说,若表格编辑页面中数据为某部门所有员工的工作绩效年报表,其中,表格中的行代表每个员工的数据,表格中的列代表12个月份,表格中每个单元格代表月工作绩效,则服务端可以根据月份将表格分成4个数组,每个数组代表当季度该部门所有员工的工作绩效,并将4个数组分别保存到应用数据库的部门季度工作绩效表中;服务端也可以根据员工姓名将表格分成若干数组,每个数组代表该员工年度工作绩效的数据,并员工年度工作绩效保存到应用数据库的员工年度工作绩效表中。

具体地,若服务端运行环境为java,且数据提交标识信息是应用数据库中的表名或应用数据库的库名,则服务端脚本可以通过jdbc将表格编辑页面中的数据插入到相应的应用数据库中或相应的数据表中。

在本实施例中,在线表格编辑方法为用户提供了统一的在线表格编辑页面,避免了用户使用不同的本地电子表格工具进行编辑带来的兼容性问题;以预设时间间隔将用户编辑的内容保存到存储平台,实现了实时在线自动保存的功能,防止数据意外丢失;对登录的用户进行身份验证,为不同用户组的用户提供表格编辑页面;接收客户端发送的数据提交请求,并根据数据提交请求中的预设标识信息将用户提交的数据进行分类,分别保存到相应的数据库中,方便对特定用户组的用户提交的数据进行自动提取,减少了汇总不同电子表格内数据的时间,提升了数据处理的效率。

进一步地,在一实施例中,如图3所示,在步骤s5之后,即将表格编辑页面中的数据保存到与数据提交标识信息相应的数据库中之后,在线表格编辑方法还包括如下步骤:

s6:接收客户端发送的数据导出请求,并获取数据导出请求中的文件类型和存储位置信息。

数据导出请求是用户需要将在线表格编辑的内容导出到本地或其他网络存储位置时,向服务端发出的请求信息。数据导出请求包括导出的文件类型和导出文件的存储位置。文件类型包括电子表格文件类型,如xls,xlsx等;标签文件类型如html,xml等,文本文件类型,如txt等。导出文件的存储位置主要包括客户端本地和网络存储位置,存储位置以文件存储路径的形式表示。

具体地,用户在html页面中点击导出按钮可以触发客户端发送数据导出请求,即触发实现导出功能的客户端脚本发送信息给服务端,服务端即可从表单中获取要导出的文件类型和要存储的位置信息。

s7:获取文件类型对应的编码方式,并将表格编辑页面中的数据转换成与编码方式匹配的文件数据流。

文件数据流是指导出文件在服务端的数据存储方式。表格编辑页面中的数据采用的是unicode编码方式,即代表在用户编辑表格的过程中,用户输入的数据在客户端是以unicode编码方式暂存和显示的。其中,unicode(统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。unicode是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。

不同文件类型中的数据采用了不同的编码方式。例如,txt为后缀的文本文件大多是采用ascii编码方式。其中,ascii(americanstandardcodeforinformationinterchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。

以导出文件类型为xls为例,服务端根据不同的文件类型,调用并执行相应的服务端脚本,从而实现将表格编辑页面中的数据转换成相应的编码方式。具体地,服务端脚本可以利用poi可以将表格编辑页面中的数据进行转换,将每个表单中的内容转换成excel表中sheet页的一个单元格,从而得到文件数据流。其中,poi全称是apachepoi,它是用java编写的免费开源的跨平台的javaapi,利用它可以实现对microsoftoffice中的excel、word、powerpoint、visio等格式文档进行读和写。

s8:将文件数据流保存到存储位置信息指定的存储位置。

在服务端上,将文件数据流保存到客户端本地和保存到网络存储位置的客户端脚本是分别部署在不同js脚本目录下的。具体地,服务端根据存储位置信息指定的存储位置调用相应的客户端脚本,并将该客户端脚本发送到客户端执行,从而实现将文件数据流保存到存储位置信息指定的存储位置。

在本实施例中,服务端接收客户端发送的数据导出请求,获取数据导出请求中的文件类型和存储位置,并将表格编辑页面中的数据转换成相应的文件数据流,然后保存到存储位置信息指定的存储位置,为用户提供将数据导出到客户端本地和网络存储位置的功能,能支持多种文件类型,有利于完善在线表格编辑功能。

进一步地,在一实施例中,如图4所示,在步骤s2之后,并且在步骤s4之前,即将与用户组相应的表格编辑页面发送到客户端之后,并且在接收客户端发送的数据提交请求,并获取数据提交请求中包含的数据提交标识信息之前,在线表格编辑方法还包括如下步骤:

s9:将表格编辑页面中的数据标记为基础表格,并将基础表格作为预设数组的第一个元素保存到预设数组。

预设数组用于对表格编辑过程中的操作步骤进行回退或者重做。通过将一定时间间隔内,表格编辑页面中的数据的变化情况保存在预设数据中,记录用户在表格编辑过程中的操作步骤,当需要对表格编辑过程中的操作步骤进行回退或者重做时,通过预设数组记录的数据实现快速回退或者重做。

预设数组是由服务端为每个用户分配的临时存储空间,预设数组的大小可以根据用户所属的分组而不同,例如,注册用户的预设数组大于匿名用户。预设数组的大小由单张表格中所有单元格可接收用户输入的字节数之和来确定。例如,若表格中包含行列数均为26,则该表单元格数量为676个;每个单元格可接收用户输入的字节数为512字节,则整表所有单元格均填满时占用空间大小为338m字节,预设数组的大小可以取338m字节的整数倍。

具体地,以单张表格最大占用存储空间为338m字节为例,服务端将js脚本目录下的客户端脚本发送到客户端执行,为用户分配预设数组的大小为1014m字节,并将表格编辑页面中的数据作为预设数组的第一个元素保存到预设数组。

s10:以第二预设时间间隔,将从表格编辑页面中获取到的数据作为当前数据,并将当前数据与基础表格的差集保存到预设数组。

第二预设时间间隔是由js脚本中默认设置的时间间隔。优选地,第二预设时间间隔为1秒。

当前数据与基础表格的差集是当前表格编辑页面中的所有单元格内的数据与基础表格中所有单元格内的数据的差集集合。举例来说,若基础表格中有单元格676个,其中,有用户输入数据的单元格20个,用户在随后的编辑过程中增加了10个单元格的数据,则当前数据与基础表格的差集为用户随后增加的10个单元格内的数据;若用户在随后的编辑过程中删除了5个单元格的数据,则当前数据与基础表格的差集为用户随后删除的5个单元格的数据。

具体地,服务端将js脚本目录下的客户端脚本发送到客户端执行,若第二预设时间间隔为1秒,则每隔1秒钟,客户端先获取当前表格编辑页面中所有单元格内的数据,然后计算当前数据与基础表格的差集,并将差集依次添加到预设数组中。

在本实施例中,将表格编辑页面中的数据标记为基础表格,并保存以第二预设时间间隔获取的表格编辑页面中的数据与基础表格的差集,从而记录了用户在编辑过程中操作的步骤,当用户在表格编辑过程中需要对编辑步骤进行回退或重做时,服务端能够通过预设数组中记录的步骤快速完成回退或重做功能,从而进一步完善在线表格编辑的功能。

进一步地,在一实施例中,如图5所示,在步骤s9之后,并且在步骤s4之前,即将表格编辑页面中的数据标记为基础表格,并将基础表格作为预设数组的第一个元素保存到预设数组之后,并且在接收客户端发送的数据提交请求,并获取数据提交请求中包含的数据提交标识信息之前,在线表格编辑方法还包括如下步骤:

s11:建立临时数组,并将基础表格作为临时数组的第一个元素保存到临时数组。

临时数组用于保存计算过程中出现的中间值,并在计算过程完成之后被销毁,释放内存空间。临时数组的大小可以设置为单张表格中所有单元格中数据所占字节之和的整数倍。

具体地,为用户分配临时数组空间,并将基础表格作为临时数组的第一个元素保存到临时数组。

s12:以第二预设时间间隔,将从表格编辑页面中获取到的数据作为当前数据保存到临时数组,并将当前数据与临时数组中与当前数据所在的元素相邻的前一元素之间的差集保存到预设数组。

第二预设时间间隔是由js脚本中默认设置的时间间隔。优选地,第二预设时间间隔为1秒。

举例来说,临时数组的第一个元素为基础表格,若第二预设时间间隔为1秒,则第1秒钟之后,客户端先获取当前表格编辑页面中所有单元格内的数据,并作为当前数据添加到临时数组中,成为临时数组的第二个元素;然后计算第二个元素与第一个元素之间的差集并将差集添加到预设数组中。第2秒之后,客户端再次获取当前表格编辑页面中所有单元格内的数据,并作为当前数据添加到临时数组中,成为临时数组的第三个元素;然后计算第三个元素与第二个元素之间的差集并将差集添加到预设数组中。以此类推,以第二预设时间间隔,将从表格编辑页面中获取到的数据作为当前数据保存到临时数组,并将当前数据与临时数组中与当前数据所在的元素相邻的前一元素之间的差集保存到预设数组。

具体地,服务端将js脚本目录下的客户端脚本发送到客户端执行,若第二预设时间间隔为1秒,则每隔1秒钟,客户端先获取当前表格编辑页面中所有单元格内的数据并添加到临时数组,然后计算临时数组中当前数据与当前数据所在的元素相邻的前一元素之间的差集,并将差集依次添加到预设数组中。

在本实施例中,通过建立临时数组缓存计算的中间变量,保存了相邻时间间隔内表格编辑页面中数据的差集,从而记录了用户在编辑过程中操作的步骤,实现了用户编辑步骤的回退和重做的功能。同时,由于相邻时间间隔内表格编辑页面中数据的差集的变化相对于当前数据与基础表格的差集更小,从而节省了预设数组的存储空间。

进一步地,在一实施例中,如图6所示,针对步骤s5,即将表格编辑页面中的数据保存到与数据提交标识信息相应的数据库中,具体可以包括如下步骤:

s51:根据预设数据类型,对表格编辑页面中的数据进行合法性检查。

预设数据类型是表格编辑页面中对用户输入的数据所作的类型限定。预设数据类型包括字符型、整型、布尔型、日期格式类型以及自定义类型等。

合法性检查包括对数据类型的检查,例如表格编辑页面中的数据是否属于字符型、整型、布尔型、日期格式类型等;合法性检查还可以包括对表格编辑页面中的数据进行应用层逻辑检查,例如检查客户端提交的员工业绩数据是否存在异常,明显不符合实际情况。

客户端脚本和服务端脚本均可以实现对表格编辑页面中的数据行合法性检查。具体地,以服务端脚本为例,服务端先获取表格编辑页面中的数据,例如包括员工入职日期,服务端脚本将预设日期格式类型与员工入职日期进行比较,并根据结果做进一步的操作。

s52:若表格编辑页面中的数据与预设数据类型不一致,则向客户端发出数据提交失败消息。

数据提交失败消息用于告知客户端数据提交失败的原因,例如数据格式不符、数据超范围等。数据提交失败消息可以通过显示错误编码的方式、或简单文字描述的方式发送到客户端。例如,浏览网页中常遇到的404错误,501错误等。

具体地,若表格编辑页面中的数据与预设数据类型不一致,服务端脚本或客户端脚本可以将与预设数据类型不一致的单元格所在的行列号发送到客户端,并提示正确的数据类型。

s53:若表格编辑页面中的数据与预设数据类型一致,则将表格编辑页面中的数据保存到与数据提交标识信息相应的数据库中。

若表格编辑页面中的数据与预设数据类型一致,服务端脚本或客户端脚本可以通过调用数据库的应用层接口将表格编辑页面中的数据保存到与数据提交标识信息相应的数据库中。

在本实施例中,通过服务端脚本或客户端脚本对表格编辑页面中的数据进行合法性检查,其中,主要包括对数据类型的检查,并根据合法性检查的结果进行数据存储或拒绝客户端的提交请求,对客户端提交的数据进行了筛选,保障了客户端提交数据的合法性,进一步完善了在线表格编辑服务的功能。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

在一实施例中,提供一种在线表格编辑装置,该在线表格编辑装置与上述实施例中在线表格编辑方法一一对应。如图7所示,该在线表格编辑装置包括登录验证模块71、页面发送模块72、自动保存模块73、提交验证模块74和数据提交模块75。各功能模块详细说明如下:

登录验证模块71,用于若接收到客户端发送的登录请求,则根据登录请求中包含的用户标识信息对用户进行身份验证,并根据身份验证的结果获取用户所属的用户组;

页面发送模块72,用于将与用户组相应的表格编辑页面发送到客户端;

自动保存模块73,用于以第一预设时间间隔,接收表格编辑页面中的数据,并保存到存储平台,其中,存储平台用于存储用户编辑的数据;

提交验证模块74,用于接收客户端发送的数据提交请求,并获取数据提交请求中包含的数据提交标识信息;

数据提交模块75,用于将表格编辑页面中的数据保存到与数据提交标识信息相应的数据库中,其中,数据库用于存储用户提交的数据。

进一步地,在线表格编辑装置还包括:

接收导出请求模块,用于接收客户端发送的数据导出请求,并获取数据导出请求中的文件类型和存储位置信息;

数据转换模块,用于获取文件类型对应的编码方式,并将表格编辑页面中的数据转换成与编码方式匹配的文件数据流;

数据导出模块,用于将文件数据流保存到存储位置信息指定的存储位置。

进一步地,在线表格编辑装置还包括:

基础表格标记模块,用于将表格编辑页面中的数据标记为基础表格,并将基础表格作为预设数组的第一个元素保存到预设数组;

第一差集计算模块,用于以第二预设时间间隔,将从表格编辑页面中获取到的数据作为当前数据,并将当前数据与基础表格的差集保存到预设数组。

进一步地,在线表格编辑装置还包括:

临时数据建立模块,用于建立临时数组,并将基础表格作为临时数组的第一个元素保存到临时数组;

第二差集计算模块,用于以第二预设时间间隔,将从表格编辑页面中获取到的数据作为当前数据保存到临时数组,并将当前数据与临时数组中与当前数据所在的元素相邻的前一元素之间的差集保存到预设数组。

进一步地,数据提交模块75包括:

合法性检查子模块,用于根据预设数据类型,对表格编辑页面中的数据进行合法性检查;

提交失败告警子模块,用于若表格编辑页面中的数据与预设数据类型不一致,则向客户端发出数据提交失败消息;

数据提交子模块,用于若表格编辑页面中的数据与预设数据类型一致,则将表格编辑页面中的数据保存到与数据提交标识信息相应的数据库中。

关于在线表格编辑装置的具体限定可以参见上文中对于在线表格编辑方法的限定,在此不再赘述。上述在线表格编辑装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种在线表格编辑方法。

在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中在线表格编辑方法的步骤,例如图2所示的步骤s1至步骤s5。或者,处理器执行计算机程序时实现上述实施例中在线表格编辑装置的各模块/单元的功能,例如图7所示模块71至模块75的功能。为避免重复,这里不再赘述。

在一实施例中,提供一计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例中在线表格编辑方法,或者,该计算机程序被处理器执行时实现上述装置实施例中在线表格编辑装置中各模块/单元的功能。为避免重复,这里不再赘述。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1