CN113449502A - 基于动态数据的文档生成方法与系统 - Google Patents
基于动态数据的文档生成方法与系统 Download PDFInfo
- Publication number
- CN113449502A CN113449502A CN202110724222.8A CN202110724222A CN113449502A CN 113449502 A CN113449502 A CN 113449502A CN 202110724222 A CN202110724222 A CN 202110724222A CN 113449502 A CN113449502 A CN 113449502A
- Authority
- CN
- China
- Prior art keywords
- target
- data
- diagram
- chart
- key
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 98
- 238000010586 diagram Methods 0.000 claims abstract description 84
- 238000004590 computer program Methods 0.000 claims description 11
- 238000010276 construction Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 description 5
- 238000009877 rendering Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
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/177—Editing, e.g. inserting or deleting of tables; using ruled lines
- G06F40/18—Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
-
- 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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/206—Drawing of charts or graphs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Document Processing Apparatus (AREA)
Abstract
本发明公开了一种基于动态数据的文档生成方法,包括:构建模板文档的动态数据,动态数据包括多个目标图表类型对应的目标图表数据、文本类型对应的目标文本数据以及表格类型对应的目标表格数据;基于目标图表数据从抽象工厂中获取第一调用方法,以生成目标基本图表,目标基本图表包括目标图表对应的目标主题信息、目标图形信息以及目标图形数据集信息;从抽象工厂中获取生成目标图表类型对应的目标图表的目标第二调用方法,并基于目标第二调用方法与目标基本图表生成目标图表;通过map集合以键值对的形式接收目标图表、目标文本数据、目标表格数据;根据键名将map集合中的数据读取到模板文档中,得到目标文档。本发明提高了文档生成的效率。
Description
技术领域
本发明实施例涉及数据处理技术领域,尤其涉及一种基于动态数据的文档生成方法与系统。
背景技术
目前市场上主流的动态文档生成技术是基于XML模板取数的FreeMarker技术,需要先编辑好Word模板,将模板转储为XML文件,然后在XML文件中修改其中的占位符,对应填入自定义的赋值名称,最后转储为.ftl格式的文件才能得到最后的模板。基于FreeMarker技术的动态文档生成存在以下不足:
一个两三页的Word文档在转储为XML文件时,会生成上千行的XML文件,若是复杂的动态数据,会得到庞大内存的XML文件,难以对XML文件进行维护和修改;在动态数据转化为XML文件的过程中,每个原先配置好的占位符${obj}都会被拆分开,需要人工定位并手动处理,效率低;在XML文件中做统计图表的时候,比如饼图、柱状图、折线图等,需要手动大量修改XML文件中的标签,并且由于Word转为XML时图表已经是base64格式存储,因此在调整图表样式时,需要不断定位将各处图片的base64码替换为占位符,步骤繁琐。
发明内容
有鉴于此,本发明实施例的目的是提供一种基于动态数据的文档生成方法与系统,解决了现有技术进行文档生成存在的效率低下、图表数据替换效率低的问题。
为实现上述目的,本发明实施例提供了一种基于动态数据的文档生成方法,包括:
构建模板文档的动态数据,所述动态数据包括多个目标图表类型对应的目标图表数据、文本类型对应的目标文本数据以及表格类型对应的目标表格数据;
基于所述目标图表数据从抽象工厂中获取第一调用方法,通过所述第一调用方法生成目标基本图表,所述目标基本图表包括所述目标图表对应的目标主题信息、目标图形信息以及目标图形数据集信息;
从所述抽象工厂中获取生成所述目标图表类型对应的目标图表的目标第二调用方法,并基于所述目标第二调用方法与所述目标基本图表生成目标图表;
通过map集合以键值对的形式接收所述目标图表、所述目标文本数据、所述目标表格数据;
根据键名将所述map集合中的数据读取到所述模板文档中,得到目标文档。
进一步地,所述方法还包括:
创建通用图表类,所述通用图表类包括各个图表类型的图表的主题信息、图形信息以及图形数据集信息;
根据所述通用图表类创建所述抽象工厂,并在所述抽象工厂中保存基于所述目标基本图表生成所述目标基本图表的第一调用方法以及生成各个图表类型对应的图表的第二调用方法。
进一步地,所述通过map集合以键值对的形式接收所述目标图表、所述文本数据、所述表格数据之前,包括:
将所述目标图表保存为预设格式的目标图片;
将所述预设格式的目标图片转化为第一格式字节数组,其中,所述第一格式字节数组为所述目标图表的键值,所述目标图表的键名为第一预设值。
进一步地,所述通过map集合以键值对的形式接收所述目标图表、所述目标文本数据、所述目标表格数据包括:
获取所述目标图表对应的所述第一格式字节数组,将所述第一格式字节数组存储于所述map集合中。
进一步地,所述通过map集合以键值对的形式接收所述目标图表、所述目标文本数据、所述目标表格数据包括:
将所述目标文本数据转换为第二格式字节数组,将所述第二格式字节数组存储于所述map集合中,其中,所述第二格式字节数组为所述目标文本数据的键值,所述目标文本数据的键名为第二预设值。
进一步地,所述通过map集合以键值对的形式接收所述目标图表、所述目标文本数据、所述目标表格数据包括:
将所述目标表格数据转换为第三格式字节数组,将所述第三格式字节数组存储于所述map集合中,其中,所述第三格式字节数组为所述目标表格数据的键值,所述目标表格数据的键名为第三预设值。
进一步地,所述方法还包括:
根据所述图表类型创建包括有各个所述图形的图形属性信息的图表库、包括有构造传输所述图形数据集的数据接口的接口库以及包括有所述主题样式对应的主题属性信息的主题库。
为实现上述目的,本发明实施例提供了一种基于动态数据的文档生成系统,包括:
构建模块,用于构建模板文档的动态数据,所述动态数据包括多个目标图表类型对应的目标图表数据、文本类型对应的目标文本数据以及表格类型对应的目标表格数据;
第一获取模块,用于基于所述目标图表数据从抽象工厂中获取第一调用方法,通过所述第一调用方法生成目标基本图表,所述目标基本图表包括目标图表对应的目标主题信息、目标图形信息以及目标图形数据集信息;
第二获取模块,用于基从所述抽象工厂中获取生成所述目标图表类型对应的目标图表的目标第二调用方法,并基于所述目标第二调用方法与所述目标基本图表生成目标图表;
接收模块,用于基通过map集合以键值对的形式接收所述目标图表、所述目标文本数据、所述目标表格数据;
读取模块,用于根据键名将所述map集合中的数据读取到所述模板文档中,得到目标文档。
为实现上述目的,本发明实施例提供了一种计算机设备,所述计算机设备包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的基于动态数据的文档生成方法的步骤。
为实现上述目的,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如上所述的基于动态数据的文档生成方法的步骤。
本发明实施例提供的基于动态数据的文档生成方法与系统,通过对动态数据中的不用类型的数据进行数据处理,转化为key-value键值对形式的数据,再存储于map集合中,最后通过key标签将存储于map集合中的数据写入到模板文档中,模板文档是预先进行设置好的,得到目标文档。本申请可以直接根据{{key}}标签取值,不用再将Word转储为XML文件,摆脱了处理和修改大量标签内容时出错的风险,定义和修改Word模板更加便捷高效。
附图说明
图1为本发明基于动态数据的文档生成方法实施例一的流程图。
图2为本发明基于动态数据的文档生成系统实施例二的程序模块示意图。
图3为本发明计算机设备实施例三的硬件结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
参阅图1,示出了本发明实施例一之基于动态数据的文档生成方法的步骤流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。下面以计算机设备2为执行主体进行示例性描述。具体如下。
步骤S100,构建模板文档的动态数据,所述动态数据包括多个目标图表类型对应的目标图表数据、文本类型对应的目标文本数据以及表格类型对应的目标表格数据。
具体地,构建动态数据,动态数据是指随时间变化而改变的数据,如库存数据等。在文档生成时,获取预设时间段内的动态数据,动态数据包括图表数据、文本数据以及表格数据,将动态数据以特定格式读取到模板文档中,生成动态数据。模板文档为word文档,为根据用户需求预先设置好固定格式的模板,只需要将动态数据进行写入对应的位置。
步骤S102,基于所述目标图表数据从抽象工厂中获取第一调用方法,通过所述第一调用方法生成目标基本图表,所述目标基本图表包括所述目标图表对应的目标主题信息、目标图形信息以及目标图形数据集信息。
具体地,目标主题信息包括主题的样式、字体设置等信息,目标图形信息包括plot类图形的图形类型、图形结构的设置等信息,目标图形数据集信息包括对应目标图形的目标数据集的数据类型,目标数据集中数据的字体设置等信息。第一调用方法根据目标图表类型创建对应的目标主题与目标图形,例如:通过setTheme(theme)方法设置目标主题和setPlot方法创建与图表类型对应的目标图形,再确定所需的填充于目标图形内的目标图形数据集的数据类型,可确定并生成通用图表类CommonChart,即目标基本图表。从初步创建的CommonChart通用图表类获取目标图表数据对应目标图表的Plot目标图形,例如柱状图的图表Chart获取到的数据类型为CategoryPlot的图形数据集,可以调整目标图形信息中的网格背景、网格横竖线、平行柱间隔、宽度等属性来优化柱状图的美观度。
示例性地,所述方法还包括:
步骤S110,创建通用图表类,所述通用图表类包括各个图表类型的图表的主题信息、图形信息以及图形数据集信息。步骤S112,根据所述通用图表类创建抽象工厂,并在所述抽象工厂中保存基于所述目标图表数据生成所述目标基本图表的第一调用方法以及生成各个图表类型对应的图表的第二调用方法。
具体地,预先定义一个基于Java 2D api的通用图表类CommonChart,其中主要包括三个属性:主题Title列表,对应图表的主标题和图例等,即主题信息;Plot图形绘制结构,包括绘图区域和坐标轴区域,即图形信息;Dataset数据集,负责传入图表所需数据,对数据集进行怎样的处理,即图形数据集信息。此CommonChart图表类能够支持柱状图、折线图、饼图和xy图等图形,还包括时间序列数据。设置图表主题样式的第一调用方法以及多个生成不同图表图形的第二调用方法,第一调用方法通过选取好的主题属性、图形属性以及图形数据集属性,例如:选取财务报表主题,柱状图图形以及将CategoryDataset类型的图形数据集展示在图形内,可确定并生成一个基本图表CommonChart,再通过第二调用方法加载对应的属性数据进行图表图形的生成,例如柱状图图形的网格背景、网格横竖线、平行柱间隔、宽度等属性数据。
步骤S104,从所述抽象工厂中获取生成所述目标图表类型对应的目标图表的目标第二调用方法,并基于所述目标第二调用方法与所述目标基本图表生成目标图表。
具体地,通过从抽象工厂中匹配生成目标图表类型对应的目标图表的目标第二调用方法,目标第二调用方法基于目标主题信息、目标图形信息以及目标图形数据集信息生成目标图表。即第二调用方法根据目标主题、目标图形以及目标数据集的属性信息对目标基本图标进行优化,得到目标图标。可以通过调用绘图工具生成目标图表,第二调用方法即为相应的绘图工具的调用方法。目标主题的属性信息为目标主题的字体大小、字体颜色等,目标图形的属性信息为进行绘制的图形,例如折现图的坐标轴、折线颜色等,目标数据集的属性信息为数据集的类型、字体等。
步骤S106,通过map集合以键值对的形式接收所述目标图表、所述目标文本数据、所述目标表格数据。
具体地,将动态数据以key-value键值对的预设格式进行转换,所有动态数据都只需要以{{key}}的形式直接定义和取值,文本类型数据对应的value键值为字符串类型,表格类型数据对应的value为List<Obj>类型,图表类型数据对应的value为ImageEntity类型。将文本类型数据、表格类型数据、图表类型数据都以key-value的形式放入一个数据Map中。map中存储的是key-value形式的数据,文本类型数据、表格类型数据、图表类型数据的key键名都是String字符串类型,可以自定义设置,方便模板文档进行读取,区别在于各个类型数据的value类型不同。
步骤S108,根据键名将所述map集合中的数据读取到所述模板文档中,得到目标文档。
具体地,目标文档可以为数据报表。将存储于map集合中的key-value数据读取到模板文档中,根据模板文档动态生成目标文档时,可以直接根据map集合中的{{key}}标签取value值,不用再将Word转储为XML文件,摆脱了处理和修改大量标签内容时出错的风险,定义和修改Word模板更加便捷高效。
进一步地,基于POI中的WordExportUtil.exportWord07(args)导出方法,读取本地已定义的模板文档,并直接通过{{key}}标签依次从Map中匹配并读取Value数据。预先创建一个word模板文档,把模板文档中与动态数据无关的格式数据等配置好,再将动态数据对应的填充区域用{{key}}的形式写入模板文档中,得到目标文档。若动态数据发生变化,动态数据的填充区域根据动态数据的大小进行变化。POI是Apache开源的用于提供给java程序对office文档进行读写操作的API,也就是一个开源工具包。
示例性地,所述通过map集合以键值对的形式接收所述目标图表、所述文本数据、所述表格数据之前,包括:
步骤S120,将所述目标图表保存为预设格式的目标图片。步骤S122,将所述预设格式的目标图片转化为第一格式字节数组,其中,所述第一格式字节数组为所述目标图表的键值,所述目标图表的键名为第一预设值。
具体地,指定一个临时路径,将调整完毕目标图表保存为图片,预设格式可以为JPEG格式。在指定图片格式的情况下,获取目标图表的ImageEncoder来对图片进行编码,并写入OutputStream图片流中进行保存,第一格式字节数组可以为ImageEntity类型的字节数组。
示例性地,获取目标图表的ImageEncoder来对图片进行编码,并写入OutputStream进行保存的具体步骤为:
首先基于java.awt.Image框架将图表渲染信息构造成一个图像数据缓冲区BufferedImage,java.awt.Image框架提供创建和修改图像的各种类,便于后面ImageEncoder用来编码成不同类型的图像;ImageEncoder是为了处理不同类型的图像抽象出来的编码器接口,对不同类型的图像有多实现(例如jpeg、png等格式),基于传入的参数"jpeg",ImageEncoder工厂类会创建出指定的ImageEncoder实例;最后会调用ImageEncoder中的encode方法,例如指定JPEG格式编码图像,利用Javax.imageIO包中的ImageWriter,将缓冲图像BufferedImage其写入outputStream输出流中。
定义ImageEntity图片实体类,再基于ByteArrayOutputStream将图片流转化为字节数组byte[],并将其作为ImageEntity图片实体类的一个属性写入实体,最终得到的ImageEntity图片实体类进行加载后得到目标图表。ImageEntity图片实体类对第一格式字节数组起到封装的作用。在ImageEntity中可以定义图片的属性,其中data属性是字节数组类型的,用于存放临时生成的图片转储而来的字节数组。
在构建ImageEntity图片实体类时,ImageEntity图片实体类会根据图片展示所需要的基本信息进行定义,写入在ImageEntity图片实体类的data数据属性中,包括:图片内容(byte[]data)、宽度、高度、类型、图片链接等信息。所有图表都能以字节数组的形式封装在ImageEntity实体中,摒弃了传统方法中直接将Base64码放在XML模板中的策略,大大降低了插入、修改动态图表的复杂度。
示例性地,所述通过map集合以键值对的形式接收所述目标图表、所述目标文本数据、所述目标表格数据包括:
获取所述目标图表对应的所述第一格式字节数组,将所述第一格式字节数组存储于所述map集合中。
示例性地,所述通过map集合以键值对的形式接收所述目标图表、所述目标文本数据、所述目标表格数据包括:
将所述目标文本数据转换为第二格式字节数组,将所述第二格式字节数组存储于所述map集合中,其中,所述第二格式字节数组为所述目标文本数据的键值,所述目标文本数据的键名为第二预设值。第二格式字节数组可以为value为List<Obj>类型的字节数组。
示例性地,所述通过map集合以键值对的形式接收所述目标图表、所述目标文本数据、所述目标表格数据包括:
将所述目标表格数据转换为第三格式字节数组,将所述第三格式字节数组存储于所述map集合中,其中,所述第三格式字节数组为所述目标表格数据的键值,所述目标表格数据的键名为第三预设值。第三格式字节数组可以为字符串类型的字节数组。
示例性地,所述方法还包括:
根据所述图表类型创建包括有各个所述图形的图形属性信息的图表库、包括有构造传输所述图表数据集的数据接口的接口库以及包括有所述主题样式对应的主题属性信息的主题库。
具体地,根据不同图表对绘制结构要求的差异,定义不同的Plot绘图类,包括CategoryPlot类,对应柱状图;XYPlot类,对应序列图;PiePlot类,对应饼图,等。绘图类中的属性包含图例形状、背景颜色、阴影、边框、网格属性等。Plot绘图类也包括多个组成,比如Renderer(图形绘制单元)、Dataset(图形数据源)、DomainAxis(区域轴)、RangeAxis(范围轴)等基本信息。将Plot绘图类以及与之对应的图表数据存储于图表库中,以便于下次动态数据直接获取使用。
根据不同图表对数据要求的差异,定义不同构造图表数据集的Dataset接口,包括ValueDataset(单值数据集)、SeriesDataset(多系列数据集,XY序列图可用)、CategoryDataset(类别相关数据集,柱状图可用)、PieDataset(键值对数据集,饼图可用)等。将数据集以及与之对应的接口数据进行封装,再存储于接口库中,当需要进行图形数据集的数据传输时,加载对应的接口数据进行数据提供。
定义通用的标准图表主题样式StandardChartTheme,其属性信息包含标题字体、图例字体、轴向字体、标题颜色、图例颜色、表格背景颜色、中心渲染点、绘制区域、阴影、XY轴网格颜色等。根据图表绘制需求,对主题样式的属性信息进行定制化设置。
实施例二
请继续参阅图2,示出了本发明基于动态数据的文档生成系统实施例二的程序模块示意图。在本实施例中,基于动态数据的文档生成系统20可以包括或被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本发明,并可实现上述基于动态数据的文档生成方法。本发明实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合于描述基于动态数据的文档生成系统20在存储介质中的执行过程。以下描述将具体介绍本实施例各程序模块的功能:
构建模块200,用于构建模板文档的动态数据,所述动态数据包括多个目标图表类型对应的目标图表数据、文本类型对应的目标文本数据以及表格类型对应的目标表格数据。
具体地,构建动态数据,动态数据是指随时间变化而改变的数据,如库存数据等。在文档生成时,获取预设时间段内的动态数据,动态数据包括图表数据、文本数据以及表格数据,将动态数据以特定格式读取到模板文档中,生成动态数据。模板文档为word文档,为根据用户需求预先设置好固定格式的模板,只需要将动态数据进行写入对应的位置。
第一获取模块202,用于基于所述目标图表数据从抽象工厂中获取第一调用方法,通过所述第一调用方法生成目标基本图表,所述目标基本图表包括目标图表对应的目标主题信息、目标图形信息以及目标图形数据集信息。
具体地,目标主题信息包括主题的样式、字体设置等信息,目标图形信息包括plot类图形的图形类型、图形结构的设置等信息,目标图形数据集信息包括对应目标图形的目标数据集的数据类型,目标数据集中数据的字体设置等信息。第一调用方法根据目标图表类型创建对应的目标主题与目标图形,例如:通过setTheme(theme)方法设置目标主题的主题样式和setPlot方法创建与图表类型对应的目标图形,再确定所需的填充于目标图形内的目标图形数据集的数据类型,可确定并生成通用图表类CommonChart,即目标基本图表。从初步创建的CommonChart通用图表类获取目标图表数据对应目标图表的Plot目标图形,例如柱状图的图表Chart获取到的数据类型为CategoryPlot的图形数据集,可以调整目标图形信息中的网格背景、网格横竖线、平行柱间隔、宽度等属性来优化柱状图的美观度。
第二获取模块204,用于基从所述抽象工厂中获取生成所述目标图表类型对应的目标图表的目标第二调用方法,并基于所述目标第二调用方法与所述目标基本图表生成目标图表。
具体地,通过从抽象工厂中匹配生成目标图表类型对应的目标图表的目标第二调用方法,目标第二调用方法基于目标主题信息、目标图形信息以及目标图形数据集信息生成目标图表。即第二调用方法根据目标主题、目标图形以及目标数据集的属性信息对目标基本图标进行优化,得到目标图标。可以通过调用绘图工具生成目标图表,第二调用方法即为相应的绘图工具的调用方法。目标主题的属性信息为目标主题的字体大小、字体颜色等,目标图形的属性信息为进行绘制的图形,例如折现图的坐标轴、折线颜色等,目标数据集的属性信息为数据集的类型、字体等。
接收模块206,用于基通过map集合以键值对的形式接收所述目标图表、所述目标文本数据、所述目标表格数据。
具体地,将动态数据以key-value键值对的预设格式进行转换,所有动态数据都只需要以{{key}}的形式直接定义和取值,文本类型数据对应的value键值为字符串类型,表格类型数据对应的value为List<Obj>类型,图表类型数据对应的value为ImageEntity类型。将文本类型数据、表格类型数据、图表类型数据都以key-value的形式放入一个数据Map中。map中存储的是key-value形式的数据,文本类型数据、表格类型数据、图表类型数据的key键名都是String字符串类型,可以自定义设置,方便模板文档进行读取,区别在于各个类型数据的value类型不同。
读取模块208,用于根据键名将所述map集合中的数据读取到所述模板文档中,得到目标文档。
具体地,目标文档可以为数据报表。将存储于map集合中的key-value数据读取到模板文档中,根据模板文档动态生成目标文档时,可以直接根据map集合中的{{key}}标签取value值,不用再将Word转储为XML文件,摆脱了处理和修改大量标签内容时出错的风险,定义和修改Word模板更加便捷高效。
实施例三
参阅图3,是本发明实施例三之计算机设备的硬件架构示意图。本实施例中,所述计算机设备2是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。该计算机设备2可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图3所示,所述计算机设备2至少包括,但不限于,可通过系统总线相互通信连接存储器21、处理器22、网络接口23、以及基于动态数据的文档生成系统20。其中:
本实施例中,存储器21至少包括一种类型的计算机可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器21可以是计算机设备2的内部存储单元,例如该计算机设备2的硬盘或内存。在另一些实施例中,存储器21也可以是计算机设备2的外部存储设备,例如该计算机设备2上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器21还可以既包括计算机设备2的内部存储单元也包括其外部存储设备。本实施例中,存储器21通常用于存储安装于计算机设备2的操作系统和各类应用软件,例如实施例二的基于动态数据的文档生成系统20的程序代码等。此外,存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器22在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制计算机设备2的总体操作。本实施例中,处理器22用于运行存储器21中存储的程序代码或者处理数据,例如运行基于动态数据的文档生成系统20,以实现实施例一的基于动态数据的文档生成方法。
所述网络接口23可包括无线网络接口或有线网络接口,该网络接口23通常用于在所述服务器2与其他电子装置之间建立通信连接。例如,所述网络接口23用于通过网络将所述服务器2与外部终端相连,在所述服务器2与外部终端之间的建立数据传输通道和通信连接等。所述网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,GSM)、宽带码分多址(Wideband CodeDivision Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。需要指出的是,图3仅示出了具有部件20-23的计算机设备2,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器21中的所述基于动态数据的文档生成系统20还可以被分割为一个或者多个程序模块,所述一个或者多个程序模块被存储于存储器21中,并由一个或多个处理器(本实施例为处理器22)所执行,以完成本发明。
例如,图2示出了所述实现基于动态数据的文档生成系统20实施例二的程序模块示意图,该实施例中,所述基于动态数据的文档生成系统20可以被划分为所述构建模块200、所述第一获取模块202、所述第二获取模块204、所述接收模块206以及所述读取模块208。其中,本发明所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述所述基于动态数据的文档生成系统20在所述计算机设备2中的执行过程。所述程序模块200-208的具体功能在实施例二中已有详细描述,在此不再赘述。
实施例四
本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于计算机程序,被处理器执行时实现实施例一的基于动态数据的文档生成方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种基于动态数据的文档生成方法,其特征在于,包括:
构建模板文档的动态数据,所述动态数据包括多个目标图表类型对应的目标图表数据、文本类型对应的目标文本数据以及表格类型对应的目标表格数据;
基于所述目标图表数据从抽象工厂中获取第一调用方法,通过所述第一调用方法生成目标基本图表,所述目标基本图表包括所述目标图表对应的目标主题信息、目标图形信息以及目标图形数据集信息;
从所述抽象工厂中获取生成所述目标图表类型对应的目标图表的目标第二调用方法,并基于所述目标第二调用方法与所述目标基本图表生成目标图表;
通过map集合以键值对的形式接收所述目标图表、所述目标文本数据、所述目标表格数据;
根据键名将所述map集合中的数据读取到所述模板文档中,得到目标文档。
2.根据权利要求1所述的基于动态数据的文档生成方法,其特征在于,所述方法还包括:
创建通用图表类,所述通用图表类包括各个图表类型的图表的主题信息、图形信息以及图形数据集信息;
根据所述通用图表类创建所述抽象工厂,并在所述抽象工厂中保存基于所述目标基本图表生成所述目标基本图表的第一调用方法以及生成各个图表类型对应的图表的第二调用方法。
3.根据权利要求1所述的基于动态数据的文档生成方法,其特征在于,所述通过map集合以键值对的形式接收所述目标图表、所述文本数据、所述表格数据之前,包括:
将所述目标图表保存为预设格式的目标图片;
将所述预设格式的目标图片转化为第一格式字节数组,其中,所述第一格式字节数组为所述目标图表的键值,所述目标图表的键名为第一预设值。
4.根据权利要求3所述的基于动态数据的文档生成方法,其特征在于,所述通过map集合以键值对的形式接收所述目标图表、所述目标文本数据、所述目标表格数据包括:
获取所述目标图表对应的所述第一格式字节数组,将所述第一格式字节数组存储于所述map集合中。
5.根据权利要求1所述的基于动态数据的文档生成方法,其特征在于,所述通过map集合以键值对的形式接收所述目标图表、所述目标文本数据、所述目标表格数据包括:
将所述目标文本数据转换为第二格式字节数组,将所述第二格式字节数组存储于所述map集合中,其中,所述第二格式字节数组为所述目标文本数据的键值,所述目标文本数据的键名为第二预设值。
6.根据权利要求1所述的基于动态数据的文档生成方法,其特征在于,所述通过map集合以键值对的形式接收所述目标图表、所述目标文本数据、所述目标表格数据包括:
将所述目标表格数据转换为第三格式字节数组,将所述第三格式字节数组存储于所述map集合中,其中,所述第三格式字节数组为所述目标表格数据的键值,所述目标表格数据的键名为第三预设值。
7.根据权利要求1所述的基于动态数据的文档生成方法,其特征在于,所述方法还包括:
根据所述图表类型创建包括有各个所述图形的图形属性信息的图表库、包括有构造传输所述图形数据集的数据接口的接口库以及包括有所述主题样式对应的主题属性信息的主题库。
8.一种基于动态数据的文档生成系统,其特征在于,包括:
构建模块,用于构建模板文档的动态数据,所述动态数据包括多个目标图表类型对应的目标图表数据、文本类型对应的目标文本数据以及表格类型对应的目标表格数据;
第一获取模块,用于基于所述目标图表数据从抽象工厂中获取第一调用方法,通过所述第一调用方法生成目标基本图表,所述目标基本图表包括目标图表对应的目标主题信息、目标图形信息以及目标图形数据集信息;
第二获取模块,用于基从所述抽象工厂中获取生成所述目标图表类型对应的目标图表的目标第二调用方法,并基于所述目标第二调用方法与所述目标基本图表生成目标图表;
接收模块,用于基通过map集合以键值对的形式接收所述目标图表、所述目标文本数据、所述目标表格数据;
读取模块,用于根据键名将所述map集合中的数据读取到所述模板文档中,得到目标文档。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1-7中任一项所述的基于动态数据的文档生成方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如权利要求1-7中任一项所述的基于动态数据的文档生成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110724222.8A CN113449502A (zh) | 2021-06-29 | 2021-06-29 | 基于动态数据的文档生成方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110724222.8A CN113449502A (zh) | 2021-06-29 | 2021-06-29 | 基于动态数据的文档生成方法与系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113449502A true CN113449502A (zh) | 2021-09-28 |
Family
ID=77813666
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110724222.8A Pending CN113449502A (zh) | 2021-06-29 | 2021-06-29 | 基于动态数据的文档生成方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113449502A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114239529A (zh) * | 2021-12-16 | 2022-03-25 | 深圳前海环融联易信息科技服务有限公司 | 基于模板引擎的文档生成方法、装置、设备及介质 |
CN114372445A (zh) * | 2022-03-21 | 2022-04-19 | 奇安信科技集团股份有限公司 | 文档生成方法、装置、电子设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108052496A (zh) * | 2017-12-19 | 2018-05-18 | 国云科技股份有限公司 | 一种基于源文件的word图文格式编排系统及其实现方法 |
CN109933752A (zh) * | 2017-12-15 | 2019-06-25 | 北京京东尚科信息技术有限公司 | 一种导出电子文档的方法和装置 |
CN110851136A (zh) * | 2019-09-18 | 2020-02-28 | 平安科技(深圳)有限公司 | 数据获取方法、装置、电子设备及存储介质 |
CN111090976A (zh) * | 2019-12-18 | 2020-05-01 | 国家体育总局体育科学研究所 | 基于动态数据的检验文档生成方法及装置 |
-
2021
- 2021-06-29 CN CN202110724222.8A patent/CN113449502A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109933752A (zh) * | 2017-12-15 | 2019-06-25 | 北京京东尚科信息技术有限公司 | 一种导出电子文档的方法和装置 |
CN108052496A (zh) * | 2017-12-19 | 2018-05-18 | 国云科技股份有限公司 | 一种基于源文件的word图文格式编排系统及其实现方法 |
CN110851136A (zh) * | 2019-09-18 | 2020-02-28 | 平安科技(深圳)有限公司 | 数据获取方法、装置、电子设备及存储介质 |
CN111090976A (zh) * | 2019-12-18 | 2020-05-01 | 国家体育总局体育科学研究所 | 基于动态数据的检验文档生成方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114239529A (zh) * | 2021-12-16 | 2022-03-25 | 深圳前海环融联易信息科技服务有限公司 | 基于模板引擎的文档生成方法、装置、设备及介质 |
CN114239529B (zh) * | 2021-12-16 | 2024-10-29 | 深圳前海环融联易信息科技服务有限公司 | 基于模板引擎的文档生成方法、装置、设备及介质 |
CN114372445A (zh) * | 2022-03-21 | 2022-04-19 | 奇安信科技集团股份有限公司 | 文档生成方法、装置、电子设备及介质 |
CN114372445B (zh) * | 2022-03-21 | 2022-08-12 | 奇安信科技集团股份有限公司 | 文档生成方法、装置、电子设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109801347B (zh) | 一种可编辑图像模板的生成方法、装置、设备和介质 | |
AU2005202722B2 (en) | Common charting using shapes | |
CN109725901A (zh) | 前端代码的开发方法、装置、设备和计算机存储介质 | |
CN111475163A (zh) | 视图模板的代码文件生成方法、装置、设备及存储介质 | |
CN111984902A (zh) | 可视化页面配置方法、系统、计算机设备和存储介质 | |
CN113449502A (zh) | 基于动态数据的文档生成方法与系统 | |
CN111459501B (zh) | 基于SVG的Web组态画面存储与展示系统和方法及介质 | |
CN112068911B (zh) | 电子表单的生成方法、装置、系统、设备以及介质 | |
CN113609820A (zh) | 基于可扩展标记语言文件生成word文件的方法、装置及设备 | |
CN113158101A (zh) | 一种可视化页面渲染方法、装置、设备及存储介质 | |
CN111294395A (zh) | 一种终端页面传输方法、装置、介质和电子设备 | |
CN113110829A (zh) | 多ui组件库数据处理方法及装置 | |
CN110457408B (zh) | 个性化地图下载方法、装置、设备及存储介质 | |
CN112068828A (zh) | 标题控件的生成方法、装置、系统、设备以及介质 | |
CN117032666A (zh) | 基于编辑器的页面编辑方法、装置、终端设备及存储介质 | |
CN111325012A (zh) | word报表生成方法与系统 | |
CN116010736A (zh) | 矢量图标的处理方法、装置、设备以及存储介质 | |
CN113535151B (zh) | 代码生成方法和装置 | |
CN114254585A (zh) | 字体生成方法、装置、电子设备及存储介质 | |
CN113918194A (zh) | 一种页面组件的显示方法、装置、电子设备及存储介质 | |
CN111241788A (zh) | 基于线性模型的文档转换方法、装置、设备及存储介质 | |
CN111914975B (zh) | 一种彩阶条生成方法、装置、设备及可读存储介质 | |
CN112068910B (zh) | 具有下载功能的附件控件的生成方法、装置以及系统 | |
CN116595284B (zh) | 网页系统运行方法、装置、设备、存储介质和程序 | |
CN115686692A (zh) | 桌面组件的渲染方法及系统、电子设备及存储介质 |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20210928 |
|
WD01 | Invention patent application deemed withdrawn after publication |