CN115618841A - 一种文档导出方法、装置、设备及存储介质 - Google Patents
一种文档导出方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115618841A CN115618841A CN202211504889.8A CN202211504889A CN115618841A CN 115618841 A CN115618841 A CN 115618841A CN 202211504889 A CN202211504889 A CN 202211504889A CN 115618841 A CN115618841 A CN 115618841A
- Authority
- CN
- China
- Prior art keywords
- document
- text
- record
- text object
- information
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/186—Templates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/149—Adaptation of the text data for streaming purposes, e.g. Efficient XML Interchange [EXI] format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/174—Form filling; Merging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种文档导出方法、装置、设备及存储介质,涉及计算机技术领域。通过获取检验记录的目标文档模板,根据所述目标文档模板的文件流,生成所述目标文档模板对应的文本对象集合,从所述检验记录中获取所述文本对象集合中各文本对象的变量值,根据所述各文本对象的变量值分别对所述各文本对象进行数据填充,得到所述检验记录的检验记录文档的文件流,所述检验记录文档的文件流包括:数据填充后所述各文本对象,根据所述检验记录文档的文件流,在前端页面生成所述检验记录文档,实现了对实验室信息管理系统中的检验记录的文档导出。
Description
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种文档导出方法、装置、设备及存储介质。
背景技术
随着医药行业的发展,纸质的医药记录逐渐发展成为电子的医药记录,对于电子的医药记录,可通过实验室信息管理系统(Laboratory Information Management System,LIMS)对其进行管理,其中,检验记录是实验室信息管理系统的其中一个核心模块,检验记录是药品检验完成后记录的相关数据,需要对检验记录记性查阅和追溯。
现有技术中,用户需进入实验室信息管理系统中,进行检验记录的查阅和追溯,若实验室信息管理系统出现系统问题时,无法浏览检验记录,因此,亟需一种专门用于检验记录的文档导出方法,将检验记录中的相关数据导出成一个Word文档,方便以后进行本地查阅和追溯。
发明内容
本发明的目的在于,针对上述现有技术的不足,提供一种文档导出方法、装置、设备及存储介质,以解决现有技术无法处理较为复杂的检验记录的文档导出的技术问题。
为实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请实施例提供一种文档导出方法,该方法包括:
获取检验记录的目标文档模板;
根据所述目标文档模板的文件流,生成所述目标文档模板对应的文本对象集合;
从所述检验记录中获取所述文本对象集合中各文本对象的变量值;
根据所述各文本对象的变量值分别对所述各文本对象进行数据填充,得到所述检验记录的检验记录文档的文件流,所述检验记录文档的文件流包括:数据填充后所述各文本对象;
根据所述检验记录文档的文件流,在前端页面生成所述检验记录文档。
可选地,所述获取检验记录的目标文档模板,包括:
根据所述检验记录的页面标识,确定所述页面标识对应的文档模板为所述目标文档模板。
可选地,所述根据所述目标文档模板的文件流,生成所述目标文档模板对应的文本对象集合,包括:
根据所述目标文档模板的文件流,创建文档对象;
获取所述文档对象中的段落对象;
获取所述段落对象中的文本对象;
根据所述段落对象中的文本对象,生成所述文本对象集合。
可选地,所述各文本对象中第一文本对象的变量的组件类型为文本类型,所述第一文本对象的变量值为文本信息;
所述根据所述各文本对象的变量值分别对所述各文本对象进行数据填充,得到所述检验记录的检验记录文档的文件流,包括:
采用预设的文本设置方法,根据所述第一文本对象的变量值,对所述第一文本对象进行数据填充,得到所述检验记录的检验记录文档的文件流。
可选地,所述各文本对象中第二文本对象的变量的组件类型为图片类型,所述第二文本对象的变量值为图片存储路径;
所述根据所述各文本对象的变量值分别对所述各文本对象进行数据填充,得到所述检验记录的检验记录文档的文件流,包括:
根据所述图片存储路径,生成所述图片存储路径对应的图片输入流;
根据所述图片输入流,采用所述第二文本对象对应的预设图像类型,对所述第二文本对象进行数据填充,得到所述检验记录的检验记录文档的文件流。
可选地,所述各文本对象中第三文本对象的变量对应的组件类型为单表格类型,所述第三文本对象的变量值为第一表格信息;
所述根据所述各文本对象的变量值分别对所述各文本对象进行数据填充,得到所述检验记录的检验记录文档的文件流,包括:
对所述第一表格信息进行解析,确定所述第一表格信息对应的行信息、列信息以及单元格信息;
根据所述第一表格信息对应的行信息、列信息以及单元格信息,对所述第三文本对象进行数据填充,得到所述检验记录的检验记录文档的文件流。
可选地,所述各文本对象中第四文本对象的变量对应的组件类型为嵌套表格类型,所述第四文本对象的变量值为第二表格信息;
所述根据所述各文本对象的变量值分别对所述各文本对象进行数据填充,得到所述检验记录的检验记录文档的文件流,包括:
对所述第二表格信息进行逐层解析,得到多层表格信息,每层表格信息包括行信息、列信息、单元格信息;
根据所述多层表格信息,逐层对所述第四文本对象进行数据填充,得到所述检验记录的检验记录文档的文件流。
第二方面,本申请实施例提供一种文档导出装置,包括:
第一获取模块,用于获取检验记录的目标文档模板;
第一生成模块,用于根据所述目标文档模板的文件流,生成所述目标文档模板对应的文本对象集合;
第二获取模块,用于从所述检验记录中获取所述文本对象集合中各文本对象的变量值;
填充模块,用于根据所述各文本对象的变量值分别对所述各文本对象进行数据填充,得到所述检验记录的检验记录文档的文件流,所述检验记录文档的文件流包括:数据填充后所述各文本对象;
第二生成模块,用于根据所述检验记录文档的文件流,在前端页面生成所述检验记录文档。
第三方面,本申请实施例提供一种计算机设备,包括:存储介质和处理器,所述存储介质存储有所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面的一种文档导出方法。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被读取并执行时,实现上述第一方面的一种文档导出方法。
相对现有技术而言,本申请具有以下有益效果:
本申请提供的一种文档导出方法、装置、设备及存储介质,通过获取检验记录的目标文档模板,根据目标文档模板的文件流,生成目标文档模板对应的文本对象集合,从检验记录中获取文本对象集合中各文本对象的变量值,根据各文本对象的变量值分别对各文本对象进行数据填充,得到检验记录的检验记录文档的文件流,检验记录文档的文件流包括:数据填充后所述各文本对象,根据检验记录文档的文件流,在前端页面生成检验记录文档,实现了对实验室信息管理系统中的检验记录的文档导出,并且,目标文档模板可以与检验记录的页面结构与页面布局不同,若对检验记录的布局进行改变,不会影响该文档导出方法,若对目标文档模板的布局进行改变,也不会影响该文档导出方法,提高了对于检验记录的文档导出的适用性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种文档导出方法的流程示意图;
图2为本申请实施例提供的另一种文档导出方法的流程示意图;
图3为本申请实施例提供的另一种文档导出方法的流程示意图;
图4为本申请实施例提供的另一种文档导出方法的流程示意图;
图5为本申请实施例提供的另一种文档导出方法的流程示意图;
图6为本申请实施例提供的一种文档导出装置的示意图;
图7为本申请实施例提供的一种计算机设备的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。
为了将实验室信息管理系统的复杂的检验记录中的数据导出成一个Word文档,方便以后进行查阅和追溯,本申请的方案中,提供一种文档导出方法,如下通过具体示例,对本申请实施例提供的一种文档导出方法进行解释说明。图1为本申请实施例提供的一种文档导出方法的流程示意图。如图1所示,该方法包括:
S101,获取检验记录的目标文档模板。
检验记录包含产品信息以及多个检验项目。
示例地,产品信息可包括:产品批号、产品名称、产品编码、生产日期、标准依据、请验单位、产品规格、生产量、生产厂家等信息。
示例地,多个检验项目可为检验设备、标准品等。检验项目为检验设备时,存在一种检验设备对应的检验项目的内容可包括:设备名称、设备编号、验证/确认有效期、核查人、日期,示例地,设备名称可为多功能酶标仪,设备编号可为0055,验证/确认有效期可为2100-01-01,核查人可为张三、日期可为2022-06-18;存在另一种检验设备对应的检验项目的内容可包括:设备名称、量程、计量编号、计量有效期、核查人、日期,示例地,设备名称可为单道移液器,量程可为10~100ul,计量编号可为2、计量有效期可为2050-01-01,核查人可为李四,日期可为2022-06-18。检验项目为标准品时,标准品对应的检验项目的内容可包括:名称、浓度、来源、批号、核查人、日期,示例地,名称可为蛋白含量测定标准品,浓度可为2mg/ml,来源可为2,批号可为0066,核查人可为王五,日期可为2022-06-18。当然,还可为其它检验项目,在本申请实施例中不做具体限制。
在本申请实施例中,每个检验记录均为一个页面,所有的检验记录均对应一个目标文档模板,以将每一个检验记录均通过同一个目标文档模板进行文档的导出。
可选地,每个检验记录与目标文档模板的页面结构与页面布局可以是相同的,也可以是不同的,在本申请实施例中不作具体限制。
可选地,多个检验记录可以对应多个不同的检验记录页面模板,也可以对应多个相同的检验记录页面模板,其中,检验记录页面模板主要用于将检验记录的主要内容显示在页面中,即检验记录,以供用户查看。可选地,检验记录页面模板与检验记录可通过产品编码和产品批号进行关联,即检验记录与检验记录页面模板内均设置了产品编号和产品批号的标识信息,用于关联检验记录和检验记录页面模板。其中,由于产品信息可以自动通过关联生成,因此,检验记录页面模板可由多个检验项目构成,每个检验项目由模块或者模块组构成,模块配置了所有检验项目所需的至少一个检验项条件。
S102,根据目标文档模板的文件流,生成目标文档模板对应的文本对象集合。
获取得到目标文档模板后,可将该目标文档模板转换为文件流,通过该文件流可以生成对应的文本对象集合。其中,文本对象集合中的每一个文本对象可以为一段文字,并且,每一个文本对象都可以进行编辑,即,可以修改内容。
在本申请实施例中,Java环境下,文本对象可以为XWPFRun文本对象,当然,还可以为该环境下的其他文本对象或者其他环境下的其他文本对象,在本申请实施例中不作具体限制。示例地,其中一个文本对象可以为“生产日期:${produceDate}”,还可以为“产品名称:${produceName} 产品规格:${produceSpecification}”,在本申请实施例中不作具体限制。其中,文本对象中可包含变量名,可根据对该变量名的赋值等操作,对该变量名进行数据填充,以修改该文本对象。
S103,从检验记录中获取文本对象集合中各文本对象的变量值。
在本申请实施例中,可通过Java环境下的反射机制获取得到检验记录对象,反射(reflection)机制可以动态获取信息以及动态调用对象方法,其中,反射机制可以理解为,对于任意一个类,都能知道这个类的所有属性和方法,对于任意一个对象,都能调用该对象的任意方法和属性。当然,还可以在该环境下通过其他方法或者在其它环境下通过其他方法获取得到检验记录,在本申请实施例中不作具体限制。
获得检验记录对象,即为获得检验记录。通过使用检验记录对象的Field的get等方法可以获得检验记录对象对应的属性值,即检验记录中的变量值,因此,从检验记录中可以获取得到文本对象集合中各文本对象的变量值。示例地,若一个文本对象为“生产日期:${produceDate}”,则可通过检验记录对象的getproduceDate的方法获取得到检验记录中该变量所对应的变量值2022-06-18。当然,该获取文本对象集合中各文本对象的变量值的方法仅为示例,还可以通过其他方法进行获取,在本申请实施例中不作具体限制。
可选地,在本申请实施例中,设置有一个预设变量数组,该预设变量数组中存储了需获取变量值的所有变量名,从检验记录中获取文本对象集合中各文本对象的变量值之前,还可对文本对象进行判断,若文本对象不包含预设变量数组中的任意一个变量名,则不获取该文本对象的变量值,减少工作量,提高文档导出的效率,若文本对象包含预设变量数组中的变量名,则获取该文本对象的变量值。
S104,根据各文本对象的变量值分别对各文本对象进行数据填充,得到检验记录的检验记录文档的文件流。
检验记录文档的文件流包括:数据填充后各文本对象。
获取得到文本对象的变量值后,将该变量值填充至各文本对象的对应变量名处,示例地,可以将各文本对象的变量名直接修改为对应的变量值,还可以为其它数据填充方法,在本申请实施例中不作具体限制。数据填充完成后,得到填充后的各文本对象,通过填充后的各文本对象,可以通过文本对象对应的文档对象得到检验记录文档的文件流。
S105,根据检验记录文档的文件流,在前端页面生成检验记录文档。
将填充好的检验记录文档的文件流返回至前端,可以通过一个空的文档对象获取相应的输出流,即填充好的检验记录文档的文件流,填充好的检验记录文档的文件流通过响应体后传输至前端页面,前端页面获取得到填充好的检验记录文档的文件流后,通过前端页面对应的浏览器可以生成对应的文档。
可选地,可设置响应体的内容类型(ContentType)为application/octet-stream;charset=utf-8,表示当前文档的字符集是采用uft-8的字符,即英文字符,同时,还需设置内容的处理方式(Content-Disposition)为attachment;filename=FileName,可将填充好的检验记录文档以FileName为命名进行保存,可以提示用户进行下载保存,同时,还需设置响应头Access-Control-Expose-Headers为Content-Disposition,指示Content-Disposition可以进行公开。
本申请提供的一种文档导出方法,通过获取检验记录的目标文档模板,根据目标文档模板的文件流,生成目标文档模板对应的文本对象集合,从检验记录中获取文本对象集合中各文本对象的变量值,根据各文本对象的变量值分别对各文本对象进行数据填充,得到检验记录的检验记录文档的文件流,根据检验记录文档的文件流,在前端页面生成检验记录文档,实现了对实验室信息管理系统中的检验记录的文档导出,并且,目标文档模板可以与检验记录的页面结构与页面布局不同,若对检验记录的布局进行改变,不会影响该文档导出方法,若对目标文档模板的布局进行改变,也不会影响该文档导出方法,提高了对于检验记录的文档导出的适用性。
在上述图1所示的一种文档导出方法的基础上,本申请实施例还提供了一种获取检验记录的目标文档模板的方法的实现方法。可选地,上述方法S101,获取检验记录的目标文档模板,包括:根据检验记录的页面标识,确定页面标识对应的文档模板为目标文档模板。
在实验室信息管理系统中,存在多个文档模板,其中,检验记录对应其中的一个文档模板,即目标文档模板。
多个文档模板均通过配置中心的页面配置进行管理,每个文档模板均对应一个数据页面,示例地,可存在操作规程数据页面对应的一个文档模板,可存在溶液主数据页面对应的一个文档模板,可存在产品请验单数据页面对应的一个文档模板,还可存在其它数据页面对应的文档模板,在本申请实施例中不作具体限制。
所有的数据页面均设置有模板标识,并且,所有的文档模板均对应有模板标识,其中,文档模板与模板标识的对应关系可预先设置在数据库中。前端页面可调用数据页面的导出接口,通过枚举类获取得到数据页面对应的模板标识,进而通过文档模板与模板标识的对应关系,查询获得对应的文档模板。
在本申请实施例中,前端页面可调用检验记录数据页面的导出接口,通过枚举类获取得到检验记录数据页面对应的模板标识,进而通过文档模板与模板标识的对应关系,查询获得目标文档模板。
本申请实施例提供的一种获取检验记录的目标文档模板的方法,根据检验记录的页面标识,确定页面标识对应的文档模板为目标文档模板,查找得到目标文档模板后,进而可对该目标文档模板进行解析与数据填充,从而可生成填充后的检验记录并导出。
在上述图1所示的一种文档导出方法的基础上,本申请实施例还提供了另一种文档导出方法的实现方法。可选地,图2为本申请实施例提供的另一种文档导出方法的流程示意图,如图2所示,上述方法S102,根据目标文档模板的文件流,生成目标文档模板对应的文本对象集合,包括:
S201,根据目标文档模板的文件流,创建文档对象。
在本申请实施例中,可通过Java POI对目标文档模板进行读取,其中,POI是apache提供的可以操作word文档的第三方jar。
POI可以通过使用XWPFDocument文档对象对word文档进行使用,因此,需根据目标文档模板的文件流,创建XWPFDocument文档对象,示例地,可通过XWPFDocument document= new XWPFDocument(inputStream)创建一个XWPFDocument文档对象,该文档对象的命名为document,其中,inputStream为输入流,即目标文档模板的文件流。
S202,获取文档对象中的段落对象。
创建得到XWPFDocument文档对象后,可遍历该文档对象,获取得到对应的段落对象XWPFParagraph,示例地,可通过XWPFParagraph paragraph = new XWPFParagraph ()创建一个XWPFParagraph段落对象。
可选地,在XWPFParagraph段落对象以及上述文档对象的命名为document的基础上,可以通过List<XWPFParagraph> paragraphs=document.getParagraphs()获取得到该文档对象中包含页眉页脚文本的所有段落。
S203,获取段落对象中的文本对象。
创建得到段落对象后,可以获取段落对象中的文本对象,示例地,可通过XWPFRunrun = paragraphX.createRun()创建一个XWPFRun文本对象。
可选地,在上述所有段落paragraphs以及XWPFRun文本对象的基础上,可以通过List<XWPFRun> runX = paragraph.getRuns()获取得到其中一个段落对应的所有文本对象,再通过for(XWPFRun run:runX){}可获取得到其中一个段落对应的各个文本对象。
在获取得到其中一个段落对应的各个文本对象的基础上,还可以通过同样的方法获取得到段落对象中的所有段落对应的多个文本对象。
S204,根据段落对象中的文本对象,生成文本对象集合。
获得所有段落对应的多个文本对象之后,可以根据该多个文本对象,生成一个文本对象集合。
本申请实施例提供的一种文档导出方法,根据目标文档模板的文件流,创建文档对象,获取文档对象中的段落对象,获取段落对象中的文本对象,根据段落对象中的文本对象,生成文本对象集合,进而可从检验记录中获取文本对象集合中各文本对象的变量值,进行数据填充后,生成填充后的检验记录并导出。
在上述图1所示的一种文档导出方法的基础上,本申请实施例还提供了另一种文档导出方法的实现方法。可选地,本申请可根据检验记录中的数据的组件类型的不同,对应不同的数据填充方式,其中,各文本对象中第一文本对象的变量的组件类型为文本类型,第一文本对象的变量值为文本信息时,上述方法S104,根据各文本对象的变量值分别对各文本对象进行数据填充,得到检验记录的检验记录文档的文件流,包括:采用预设的文本设置方法,根据第一文本对象的变量值,对第一文本对象进行数据填充,得到检验记录的检验记录文档的文件流。
在本申请实施例中,根据检验记录对象的Field的get方法可以拿到变量值,预设的文本设置方法可以为第一文本对象XWPFRun的setText方法,将该变量值作为setText方法的输入值,即可将该变量值填充至目标文档模板的第一文本对象的变量名所在的位置处。当然,还可以通过其他的方法进行文本信息的填充,在本申请实施例中不作具体限制。
本申请实施例提供的一种文档导出方法,各文本对象中第一文本对象的变量的组件类型为文本类型,第一文本对象的变量值为文本信息,采用预设的文本设置方法,根据第一文本对象的变量值,对第一文本对象进行数据填充,得到检验记录的检验记录文档的文件流,实现了检验记录中的文本信息对应的检验记录文档的填充。
在上述图1所示的一种文档导出方法的基础上,本申请实施例还提供了另一种文档导出方法的实现方法。可选地,图3为本申请实施例提供的另一种文档导出方法的流程示意图,如图3所示,各文本对象中第二文本对象的变量的组件类型为图片类型,第二文本对象的变量值为图片存储路径时,上述方法S104,根据各文本对象的变量值分别对各文本对象进行数据填充,得到检验记录的检验记录文档的文件流,包括:
S301,根据图片存储路径,生成图片存储路径对应的图片输入流。
检验记录中除了文字信息之外,还存在图片类型的数据,示例地,检验记录中的化学结构式通常以图片的形式进行存储,因此,数据填充时也包括图片的填充。
在判断XWPFRun对象包含化学结构式对应的变量名后,在获取对应的变量值时,该变量值为化学结构式对应的图片存储路径,可根据该图片存储路径,获取该图片存储路径对应的图片的File对象,进而根据该File对象可生成文件输入流,即化学结构式的图片的输入流。
可选地,在本申请实施例中,图片类型的数据不仅仅为化学结构式,还可能为其它信息,在本申请实施例中不作具体限制,可以理解的是,所有图片类型的数据均可根据图片存储路径,生成图片存储路径对应的图片输入流。
S302,根据图片输入流,采用第二文本对象对应的预设图像类型,对第二文本对象进行数据填充,得到检验记录的检验记录文档的文件流。
在本申请实施例中,可通过第二文本对象的addPicture方法指定图片类型后进行数据填充。其中,图片类型可以为JPEG、TIFF、RAW、BMP、GIF、PNG等,在本申请实施例中不作具体限制。
可选地,第二文本对象的addPicture方法还可以调整图片的尺寸以适应目标文档模板的大小,还可设置图片的填充位置,示例地,填充位置可以为左上角、顶部等,在本申请实施例中不作具体限制。
本申请实施例提供的一种文档导出方法,各文本对象中第二文本对象的变量的组件类型为图片类型,第二文本对象的变量值为图片存储路径,根据图片存储路径,生成图片存储路径对应的图片输入流,根据图片输入流,采用第二文本对象对应的预设图像类型,对第二文本对象进行数据填充,得到检验记录的检验记录文档的文件流,实现了检验记录中的图片信息对应的检验记录文档的填充。
在上述图1所示的一种文档导出方法的基础上,本申请实施例还提供了另一种文档导出方法的实现方法。可选地,图4为本申请实施例提供的另一种文档导出方法的流程示意图,如图4所示,各文本对象中第三文本对象的变量对应的组件类型为单表格类型,第三文本对象的变量值为第一表格信息,上述方法S104,根据各文本对象的变量值分别对各文本对象进行数据填充,得到检验记录的检验记录文档的文件流,包括:
S401,对第一表格信息进行解析,确定第一表格信息对应的行信息、列信息以及单元格信息。
检验记录中除了文字信息、图片信息之外,还存在表格数据,示例地,检验记录中的检验项目数据通常以表格的形式进行存储,因此,数据填充时也包括表格数据的填充。
可选地,检测项目里面会包含表格,可通过检验记录ID获取该检验记录的检验项目对象集合,遍历检验项目集合,通过对检验项目是否有表头数据,判断该检验项目是文本类型还是表格类型,如果没有表头数据,则该检验项目为文本类型对应的文本信息,可通过第一文本对象XWPFRun的setText方法进行文本信息的填充,如果有表头数据,则该检验项目为表格类型对应的表格信息。其中,表头数据可通过表格对象XWPFTable获得。
若表头数据指示该表格为单表格类型,即普通的一层表格,则获取得到的变量值为第一表格信息,对该第一表格信息进行解析,可以获得第一表格信息对应的行信息、列信息以及单元格信息。示例地,第一表格信息对应的表格对象中,存在至少一个行标识和至少一个列标识,通过统计行标识的数量以及列标识的数量,可以确定该第一表格信息对应的行信息和列信息,即该第一表格信息的行数和列数,同时,在行标识与列标识之间设置有对应的单元格信息,通过遍历,可以获取得到该第一表格信息对应的所有单元格信息。
S402,根据第一表格信息对应的行信息、列信息以及单元格信息,对第三文本对象进行数据填充,得到检验记录的检验记录文档的文件流。
根据第一表格信息对应的行信息、列信息以及单元格信息,可以将各个单元格信息填充至对应的单元格内,完成单表格类型的第一表格信息的数据填充。
可选地,检验记录还对应有审批记录,可通过Feign调用工作流服务获取该检验记录的审批记录,该审批记录的组件类型为单表格类型,可将获取得到的审批记录对应的第一表格信息进行解析,确定第一表格信息对应的行信息、列信息以及单元格信息,根据第一表格信息对应的行信息、列信息以及单元格信息,对审批记录对应的第三文本对象进行数据填充,得到检验记录的检验记录文档的文件流。
本申请实施例提供的一种文档导出方法,各文本对象中第三文本对象的变量对应的组件类型为单表格类型,第三文本对象的变量值为第一表格信息,对第一表格信息进行解析,确定第一表格信息对应的行信息、列信息以及单元格信息,根据第一表格信息对应的行信息、列信息以及单元格信息,对第三文本对象进行数据填充,得到检验记录的检验记录文档的文件流,实现了检验记录中的单表格类型对应的第一表格信息对应的检验记录文档的填充。
在上述图1所示的一种文档导出方法的基础上,本申请实施例还提供了另一种文档导出方法的实现方法。可选地,图5为本申请实施例提供的另一种文档导出方法的流程示意图,如图5所示,各文本对象中第四文本对象的变量对应的组件类型为嵌套表格类型,第四文本对象的变量值为第二表格信息,上述方法S104,根据各文本对象的变量值分别对各文本对象进行数据填充,得到检验记录的检验记录文档的文件流,包括:
S501,对第二表格信息进行逐层解析,得到多层表格信息。
检验记录中除了文字信息、图片信息、单表格之外,还存在嵌套表格数据,示例地,检验记录中的检验项目数据可以嵌套表格的形式进行存储,因此,数据填充时也包括嵌套表格数据的填充。
若表头数据指示该表格为嵌套表格类型,则需对第二表格信息进行逐层解析,得到多层表格信息,其中,每层表格信息包括行信息、列信息、单元格信息。
示例地,嵌套表格的最外面一层的表格的表头数据同于指示该表格为嵌套表格类型,对该第二表格信息的最外面一层进行解析,可以获得第二表格信息最外面一层对应的行信息、列信息以及单元格信息。若存在一个单元格信息包含嵌套表格标识,则该单元格信息为嵌套表格,继续对该嵌套表格进行解析,获得该嵌套表格对应的行信息、列信息以及单元格信息,直到单元格信息不包含嵌套表格标识,则第二表格信息的逐层解析完成,可以得到每层表格信息。并且,还可以得到每层表格信息之间的关系。
S502,根据多层表格信息,逐层对第四文本对象进行数据填充,得到检验记录的检验记录文档的文件流。
根据最外面一层的表格信息对应的行信息、列信息以及单元格信息,将各个单元格信息填充至对应的单元格内,完成最外面一层表格的据填充,再根据最外面一层的嵌套表格对应的行信息、列信息以及单元格信息,将各个单元格信息填充至该嵌套表格对应的单元格内,直到所有层嵌套表格均进行数据填充。
可选地,还可以由最内层的嵌套表格开始进行填充,直到最外面一层的表格的数据填充完。
本申请实施例提供的一种文档导出方法,各文本对象中第四文本对象的变量对应的组件类型为嵌套表格类型,第四文本对象的变量值为第二表格信息,对第二表格信息进行逐层解析,得到多层表格信息,每层表格信息包括行信息、列信息、单元格信息,根据多层表格信息,逐层对第四文本对象进行数据填充,得到检验记录的检验记录文档的文件流,实现了检验记录中的嵌套表格类型对应的第二表格信息对应的检验记录文档的填充。
本申请提出的一种文档导出方法,可根据目标文档模板进行数据填充,其中,不同类型的组件对应不同的填充方式,实现了对于复杂页面,如嵌套表格、化学结构式的文档导出,实现了可结合灵活配置(多种不同类型的组件)的检验记录进行文档导出。
下述对用以执行的本申请所提供的一种文档导出装置、设备以及存储介质进行说明,其具体的实现过程以及技术效果参见上述,下述不再赘述。
图6为本申请实施例提供的一种文档导出装置的示意图,如图6所示,该文档导出装置包括:
第一获取模块601,用于获取检验记录的目标文档模板。
第一生成模块602,用于根据目标文档模板的文件流,生成目标文档模板对应的文本对象集合。
第二获取模块603,用于从检验记录中获取文本对象集合中各文本对象的变量值。
填充模块604,用于根据所述各文本对象的变量值分别对所述各文本对象进行数据填充,得到所述检验记录的检验记录文档的文件流,所述检验记录文档的文件流包括:数据填充后所述各文本对象。
第二生成模块605,用于根据检验记录文档的文件流,在前端页面生成检验记录文档。
可选地,第一获取模块601,具体用于根据检验记录的页面标识,确定页面标识对应的文档模板为目标文档模板。
可选地,第一生成模块602,具体用于根据目标文档模板的文件流,创建文档对象;获取文档对象中的段落对象;获取段落对象中的文本对象;根据段落对象中的文本对象,生成文本对象集合。
可选地,填充模块604,具体用于采用预设的文本设置方法,根据第一文本对象的变量值,对第一文本对象进行数据填充,得到检验记录的检验记录文档的文件流。
可选地,填充模块604,具体用于根据图片存储路径,生成图片存储路径对应的图片输入流;根据图片输入流,采用第二文本对象对应的预设图像类型,对第二文本对象进行数据填充,得到检验记录的检验记录文档的文件流。
可选地,填充模块604,具体用于对第一表格信息进行解析,确定第一表格信息对应的行信息、列信息以及单元格信息;根据第一表格信息对应的行信息、列信息以及单元格信息,对第三文本对象进行数据填充,得到检验记录的检验记录文档的文件流。
可选地,填充模块604,具体用于对第二表格信息进行逐层解析,得到多层表格信息,每层表格信息包括行信息、列信息、单元格信息;根据多层表格信息,逐层对第四文本对象进行数据填充,得到检验记录的检验记录文档的文件流。
以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital singnal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
图7为本申请实施例提供的一种计算机设备的示意图,该计算机设备可以是具备计算处理功能的计算设备。
该计算机设备包括:处理器701、存储介质702、总线703。处理器701和存储介质702通过总线703连接。
存储介质702用于存储程序,处理器701调用存储介质702存储的程序,以执行上述方法实施例。具体实现方式和技术效果类似,这里不再赘述。
可选地,本发明还提供一种程序产品,例如计算机可读存储介质,包括程序,该程序在被处理器执行时用于执行上述方法实施例。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种文档导出方法,其特征在于,所述方法包括:
获取检验记录的目标文档模板;
根据所述目标文档模板的文件流,生成所述目标文档模板对应的文本对象集合;
从所述检验记录中获取所述文本对象集合中各文本对象的变量值;
根据所述各文本对象的变量值分别对所述各文本对象进行数据填充,得到所述检验记录的检验记录文档的文件流,所述检验记录文档的文件流包括:数据填充后所述各文本对象;
根据所述检验记录文档的文件流,在前端页面生成所述检验记录文档。
2.根据权利要求1所述的文档导出方法,其特征在于,所述获取检验记录的目标文档模板,包括:
根据所述检验记录的页面标识,确定所述页面标识对应的文档模板为所述目标文档模板。
3.根据权利要求1所述的文档导出方法,其特征在于,所述根据所述目标文档模板的文件流,生成所述目标文档模板对应的文本对象集合,包括:
根据所述目标文档模板的文件流,创建文档对象;
获取所述文档对象中的段落对象;
获取所述段落对象中的文本对象;
根据所述段落对象中的文本对象,生成所述文本对象集合。
4.根据权利要求1所述的文档导出方法,其特征在于,所述各文本对象中第一文本对象的变量的组件类型为文本类型,所述第一文本对象的变量值为文本信息;
所述根据所述各文本对象的变量值分别对所述各文本对象进行数据填充,得到所述检验记录的检验记录文档的文件流,包括:
采用预设的文本设置方法,根据所述第一文本对象的变量值,对所述第一文本对象进行数据填充,得到所述检验记录的检验记录文档的文件流。
5.根据权利要求1所述的文档导出方法,其特征在于,所述各文本对象中第二文本对象的变量的组件类型为图片类型,所述第二文本对象的变量值为图片存储路径;
所述根据所述各文本对象的变量值分别对所述各文本对象进行数据填充,得到所述检验记录的检验记录文档的文件流,包括:
根据所述图片存储路径,生成所述图片存储路径对应的图片输入流;
根据所述图片输入流,采用所述第二文本对象对应的预设图像类型,对所述第二文本对象进行数据填充,得到所述检验记录的检验记录文档的文件流。
6.根据权利要求1所述的文档导出方法,其特征在于,所述各文本对象中第三文本对象的变量对应的组件类型为单表格类型,所述第三文本对象的变量值为第一表格信息;
所述根据所述各文本对象的变量值分别对所述各文本对象进行数据填充,得到所述检验记录的检验记录文档的文件流,包括:
对所述第一表格信息进行解析,确定所述第一表格信息对应的行信息、列信息以及单元格信息;
根据所述第一表格信息对应的行信息、列信息以及单元格信息,对所述第三文本对象进行数据填充,得到所述检验记录的检验记录文档的文件流。
7.根据权利要求1所述的文档导出方法,其特征在于,所述各文本对象中第四文本对象的变量对应的组件类型为嵌套表格类型,所述第四文本对象的变量值为第二表格信息;
所述根据所述各文本对象的变量值分别对所述各文本对象进行数据填充,得到所述检验记录的检验记录文档的文件流,包括:
对所述第二表格信息进行逐层解析,得到多层表格信息,每层表格信息包括行信息、列信息、单元格信息;
根据所述多层表格信息,逐层对所述第四文本对象进行数据填充,得到所述检验记录的检验记录文档的文件流。
8.一种文档导出装置,其特征在于,包括:
第一获取模块,用于获取检验记录的目标文档模板;
第一生成模块,用于根据所述目标文档模板的文件流,生成所述目标文档模板对应的文本对象集合;
第二获取模块,用于从所述检验记录中获取所述文本对象集合中各文本对象的变量值;
填充模块,用于根据所述各文本对象的变量值分别对所述各文本对象进行数据填充,得到所述检验记录的检验记录文档的文件流,所述检验记录文档的文件流包括:数据填充后所述各文本对象;
第二生成模块,用于根据所述检验记录文档的文件流,在前端页面生成所述检验记录文档。
9.一种计算机设备,其特征在于,包括:存储介质和处理器,所述存储介质存储有所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时实现上述权利要求1-7中任一项所述的文档导出方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被读取并执行时,实现上述权利要求1-7中任一项所述的文档导出方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211504889.8A CN115618841A (zh) | 2022-11-29 | 2022-11-29 | 一种文档导出方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211504889.8A CN115618841A (zh) | 2022-11-29 | 2022-11-29 | 一种文档导出方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115618841A true CN115618841A (zh) | 2023-01-17 |
Family
ID=84880407
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211504889.8A Withdrawn CN115618841A (zh) | 2022-11-29 | 2022-11-29 | 一种文档导出方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115618841A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117272953A (zh) * | 2023-11-15 | 2023-12-22 | 明度智云(浙江)科技有限公司 | 一种文档信息自动填充方法、系统和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109933752A (zh) * | 2017-12-15 | 2019-06-25 | 北京京东尚科信息技术有限公司 | 一种导出电子文档的方法和装置 |
CN111460017A (zh) * | 2020-03-20 | 2020-07-28 | 平安国际智慧城市科技股份有限公司 | 文档数据导入方法、文档数据导出方法、装置和存储介质 |
CN111859899A (zh) * | 2020-07-06 | 2020-10-30 | 合肥森亿智能科技有限公司 | Word文档的解析与填充方法、装置、设备和存储介质 |
CN113283228A (zh) * | 2021-07-22 | 2021-08-20 | 北京关键科技股份有限公司 | 文档生成方法、装置、电子设备及存储介质 |
CN113919303A (zh) * | 2021-11-02 | 2022-01-11 | 中国工商银行股份有限公司 | 一种自动生成业务信息表的方法及装置 |
CN115391439A (zh) * | 2022-08-24 | 2022-11-25 | 中化现代农业有限公司 | 文档数据导出方法、装置、电子设备和存储介质 |
-
2022
- 2022-11-29 CN CN202211504889.8A patent/CN115618841A/zh not_active Withdrawn
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109933752A (zh) * | 2017-12-15 | 2019-06-25 | 北京京东尚科信息技术有限公司 | 一种导出电子文档的方法和装置 |
CN111460017A (zh) * | 2020-03-20 | 2020-07-28 | 平安国际智慧城市科技股份有限公司 | 文档数据导入方法、文档数据导出方法、装置和存储介质 |
CN111859899A (zh) * | 2020-07-06 | 2020-10-30 | 合肥森亿智能科技有限公司 | Word文档的解析与填充方法、装置、设备和存储介质 |
CN113283228A (zh) * | 2021-07-22 | 2021-08-20 | 北京关键科技股份有限公司 | 文档生成方法、装置、电子设备及存储介质 |
CN113919303A (zh) * | 2021-11-02 | 2022-01-11 | 中国工商银行股份有限公司 | 一种自动生成业务信息表的方法及装置 |
CN115391439A (zh) * | 2022-08-24 | 2022-11-25 | 中化现代农业有限公司 | 文档数据导出方法、装置、电子设备和存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117272953A (zh) * | 2023-11-15 | 2023-12-22 | 明度智云(浙江)科技有限公司 | 一种文档信息自动填充方法、系统和存储介质 |
CN117272953B (zh) * | 2023-11-15 | 2024-03-12 | 明度智云(浙江)科技有限公司 | 一种文档信息自动填充方法、系统和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110162544B (zh) | 异构数据源数据获取方法及装置 | |
CN109637602B (zh) | 医疗数据存储和查询方法、装置、存储介质及电子设备 | |
CN110737689B (zh) | 数据标准符合性检测方法、装置、系统及存储介质 | |
CN106648569B (zh) | 目标序列化实现方法和装置 | |
CN111081329A (zh) | 临床数据自动录入方法及装置、电子设备、存储介质 | |
CN115618841A (zh) | 一种文档导出方法、装置、设备及存储介质 | |
CN114357943A (zh) | 一种通用高效Excel读取处理方法、工具、介质及设备 | |
JP2007079705A (ja) | 部材属性情報の不正抽出方法、およびオブジェクト属性情報の不正抽出システム | |
CN111858643B (zh) | 数据库变量生产方法、系统、计算机设备和存储介质 | |
CN114005498A (zh) | 临床试验数据逻辑核查方法和装置、设备、存储介质 | |
Jimenez et al. | Improving the primary care consultation for diabetes and depression through digital medical interview assistant systems: narrative review | |
EP3699917A1 (en) | Management and tracking solution for specific patient consent attributes and permissions | |
Willighagen et al. | Beautifying data in the real world | |
CN111598707A (zh) | 一种页面的生成方法及电子设备 | |
Ronchieri et al. | Assessing the impact of software quality models in healthcare software systems | |
Nguyen et al. | Assessing the quality of bibliographic data sources for measuring international research collaboration | |
CN111916164B (zh) | 用于临床研究中的中心启动调研系统的实现方法和装置 | |
CN114528313A (zh) | 数据处理方法、装置和电子设备 | |
CN114168456A (zh) | 一种基于3d-gis的前端性能自动化测试方法 | |
CN114020769A (zh) | 一种数据血缘分析方法、装置和存储介质 | |
CN109697141B (zh) | 用于可视化测试的方法及装置 | |
CN109190352B (zh) | 一种授权文本准确性验证方法和装置 | |
CN112434511A (zh) | 医学数据的处理方法、装置及存储介质 | |
CN112988589A (zh) | 一种接口测试方法、装置和系统 | |
Peters et al. | Using the RxNorm web services API for quality assurance purposes |
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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20230117 |