业务系统中的数据很笼统的分可以分为两大类,一个是结构化的,通常用关系型数据库来存储管理;一个是非结构化的,在这类数据中,可能最多、价值密度最大的就是文档。如何更便捷高效的生成或分析文档,就是业务系统通常关注的结构化数据生成非结构化的文档,以及非结构化的文档提取为结构化数据。
一般业务系统做这两类事儿的时候,常常会用到POI,这是个利器,可以在服务端不打开文档的情况下,做文档的内容生成和数据提取,但也有不少局限性,例如在设置一些格式上就不够直观和精细,那WPS现在通过jsapi暴露了全能力后,这类场景有哪些「好玩儿」的新姿势呢?今天奉上几个小例子,给大家开阔下思路。
事前设计——「挖空儿」
把文字文件通过模板事前将关键元素(待提取的)做Key-Value设计,常见的方法可通过「书签」、「公文域」、「内容控件」和「自定义XML标签」,这样虽然这还是一篇非结构化数据,但是对于业务系统而言,这已经就是一个「大表单」了,就可以很轻松的对文档中的内容做双向同步了。
下图的Demo就是通过「内容控件」做的,针对内容控件,再通过业务系统将人员信息做结合,即可完成更加丰富的使用场景。例如让某个内容控件只能某些人可编辑、可查看等。
此Demo的托管地址。
事前设计——「打标签」
在表格操作中,一般会有根据后台模板,填充相应的数据到指定的单元格的需求,且该单元格位置无论是否被修改,都能够正确定位到。由于表格中是没有书签的,所以对于单元格的定位且可以使用表格的Names属性,在表格的模板中,可以使用名称管理器来为单元格或者选区添加添加Name属性,也可以通过jsapi中选区或者单元格的Name属性来添加。
下图的Demo就是通过设置单元格的Names来建立与业务系统的关联。
此Demo的托管地址。
事后分析——「分段」
对于一篇再普通不过的文档,没有书签、公文域、内容控件等,可不可以做分析,当然可以,那就用普通的API做内容提取呗。这个Demo提供的思路就是将文档的文字内容按照段落逐一提取出来,业务系统就能拿到这些数据做分析。当然可以获取的信息还可以更多,包括文档中的各类元素,通过jsapi做操作即可。
此Demo的托管地址。
事后分析——「智能目录」
一篇文档的骨架就是目录,但是如果这篇文档没有事前做好目录(标题样式和段落层级),那文档是很难生成目录(TOC域),WPS2019具备「智能目录识别」能力,就是针对这类「无目录文档」,根据内容的特征去猜目录。正确率还是很可以的哟。利用这个功能,其实业务系统是可以对非结构化文字文档做关键内容提取的哟。
此Demo的托管地址。
这只是解锁了几个新姿势,更多的使用场景,欢迎大家持续挖掘,也希望能和我们互动起来哟。