Excel协同汇总的Nodejs算法解决方案

2020-02-29 05:39兰天张荣庆梁乾汉中职业技术学院
数码世界 2020年2期
关键词:电子表格汇总网页

兰天 张荣庆 梁乾 汉中职业技术学院

关键字:Excel 协同汇总 Nodejs

1 国内外研究现状

微软公司于2003年已经为Excel2003提供了共享工作簿的功能,但该功能极不完善,表现为有两项主要制约,协同编辑者必须事先约定自身所应当负责编辑的row、column或者cell,以及它仅能实现局域网共享编辑。

Boban Mathew, Thomas John, Dagny Evans于2007年在他们的专利申请公开说明书US20070220417A1中,提出来一个网络共享云编辑的模型和方法,该模型采用C/S架构,每一位Client协作者,都与Server计算机简历Web会话,并从Server中下载一个副本。Server则接收Client协作者编辑文档的请求, 该文档具有特定的文档类型并存储在Server计算机上,通过这种方式来实现Excel云编辑。

Michael L. Milton 2006年在他的专利US20070219956A1中提出关闭用于分析在客户端计算机上创建的电子表格的单个对象并发送整个工作簿、其二进制文件和主库中服务器计算机上存储的对象的方法。下载的对象可以使用电子表格应用程序的本机工具 (通常为Excel) 进行修改, 并以不同的名称重新存储在主库中, 并将元数据中列出的对象作为所有者进行更改。用户可以输入自己的元数据。对象的自动命名可将对象与其在创建它们的工作簿中的原始位置分离。

国内有“格子啦”、“班牛”等云表格编辑平台,并且金山软件旗下的WPS手机版还提供云编辑的手机小程序,可以实现多人共享云编辑,这些云编辑都需要协作者向管理员申请编辑权限,才可以进行云编辑,因而会损失一定效率。

徐强、王振江在他们2012出版的《云计算应用开发实践》中提出了Excel VBA宏与Symphony 相结合的方式实现云协同。实际上是Windows共享工作簿的一种实现。与此方案类似的还有,陈秀峰2003在《软件世界》杂志中发表的《Excel共享全攻略》,张迎新2004年在《电脑应用文萃》杂志中发表的《Excel多人共享攻略》。

2 Excel协同汇总软件的整体设计

编者主要考虑不改变用户固有的使用习惯,不以任何形式侵犯其他软件的版权,所以没有做任何Office Excel插件,另外需要具有跨平台,可运行在Windows、Mac OS、Linux等多个操作系统的特性。同时,抛弃了传统的C-S架构,在Client端无需配置任何插件,所有的汇总、比对、过滤、排序、检验数据都在Server端完成,因而协同Excel填报者无需使用和了解本软件解决方案,仅仅Excel汇总者需要了解本软件使用方法。为了达到以上目的,编者采用Node.js作为框架,JavaScript为主要编程语言,设计了Excel协同汇总软件。在Excel文件处理方面主要使用了node-xlsx库,将原本的Excel文件转化为文本文件,在使用fs库、line-reader库、path库、readline库、iconv-lite库来处理文本文件,将每一个文本相同部分剔除,保留差异部分。再将剔除的相同部分与差异部分重新组成一个汇总后的Excel文件。本软件的创新之处在于先进的容错机制,允许相同部分在前后空格、单元格格式、以及合并单元格与否等细节的不同。

3 Excel协同汇总软件的构成与使用

Excel协同汇总软件的构造主要由10个模块组成,使用JavaScript编写,分别为 contrast.js、excel.js、export.js、initialize.js、kill.js、killfinalfile.js、outcome.js、vs.js、vs00.js、vs0.js。

另外使用C++与HTML和Node.js的express模块与multer模块相结合编写了一个图形图像化的网页控制台,可以在Windows平台下直接点击kongzhitai.exe进入网页控制台,在Linux和MacOS下可以通过浏览器登入网页控制台。除此之外,本软件对有一定计算机基础的使用者,在各平台之下提供命令行来执行,可以精确地控制每一个比对、过滤、排序、检验、汇总数据的步骤。另外对于记不住命令行命令,又不想使用图形界面的用户,在Windows平台下提供了命令批处理来执行本程序。

4 总结

Excel协同汇总已经取得软件著作权,发明专利也在申请当中,本软件的设计逻辑总结起来可以用以下的流程图来表示。

猜你喜欢
电子表格汇总网页
常用缩略语汇总
源流2020年目录汇总
系统抽样的非常规题汇总
基于HTML5与CSS3的网页设计技术研究
电子表格的自动化检测
电子表格的自动化检测
基于HTML5静态网页设计
2013—2017年市人大常委会执法检查项目汇总
搜索引擎怎样对网页排序
电子表格音乐合成器