CN111680477A - 导出电子表格文件的方法、装置、计算机设备及存储介质 - Google Patents
导出电子表格文件的方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN111680477A CN111680477A CN202010348340.9A CN202010348340A CN111680477A CN 111680477 A CN111680477 A CN 111680477A CN 202010348340 A CN202010348340 A CN 202010348340A CN 111680477 A CN111680477 A CN 111680477A
- Authority
- CN
- China
- Prior art keywords
- query
- data
- parameter
- name
- executed
- 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
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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- Mathematical Physics (AREA)
- Power Engineering (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例属于大数据技术领域,涉及一种导出电子表格文件的方法、装置、计算机设备及存储介质,包括:创建包括表头、标题属性、待执行的结构化查询语言、电子表格名称、查询参数和数据数目的查询模块,待执行的结构化查询语言包括查询条件和执行语句,将查询条件的条件名与查询参数的参数名映射;接收到查询指令时,读取电子表格名称、数据数目、查询参数、标题属性和表头;根据参数名与条件名的映射关系,使用获取的参数名替换对应的条件名;执行待执行的结构化查询语言,从数据库中获取业务数据;根据获取的表头、业务数据、电子表格名称和数据数目,生成电子表格。本案还涉及区块链技术,所述业务数据可存储于区块链节点中。
Description
技术领域
本申请涉及大数据技术领域,尤其涉及导出电子表格文件的方法、装置、计算机设备及存储介质。
背景技术
导出Excle文件是管理***常见功能,目前常见的实现方式有两种:一是针对具体业务场景,单独开发一套,从数据库中查出指定字段对应的数据,选择生成Excle工具,把数据遍历填充到Excle的sheet中,调用流导出Excle文件,但是导出的数据是变化的,每次添加新的字段,需要每个环节中加上该字段,***改动的范围比较大,改动的细节比较多,很容易遗漏;新的业务需要导出不同的数据还需要重新编写一套,复用性比较低,灵活性比较差。二是把所有需要的数据备份到指定表里面,页面中把所有字段全列出来,用户选择自己需要的数据,***记录每个用户指定导出字段,查询数据,导出Excle文件。但是,把所有数据都放在一张表里面,字段比较多,数据量比较大的情况下,导出时间比较长,性能比较差,数据需要冗余的字段太多,难以导出实时数据。
发明内容
本申请实施例的目的在于提出一种导出电子表格文件的方法、装置、计算机设备及存储介质,提升了***的响应速度,降低***压力。
为了解决上述技术问题,本申请实施例提供一种导出电子表格文件的方法,采用了如下所述的技术方案:
一种导出电子表格文件的方法,包括下述步骤:
创建查询模板,所述查询模板包括表头、标题属性、待执行的结构化查询语言、电子表格名称、查询参数和数据数目,并将所述表头与所述标题属性一一对应,待执行的结构化查询语言包括查询条件和执行语句,所述查询条件包括条件名,所述查询参数包括参数名,将所述条件名与所述参数名一一映射;
当接收到查询指令时,读取所述查询模板中的电子表格名称、数据数目、查询参数、标题属性和与所述标题属性对应的表头;
根据所述查询参数中参数名与所述条件名的映射关系,使用获取的参数名替换所述待执行的结构化查询语言中的对应的条件名,以完成待执行的结构化查询语言的组装;
执行所述待执行的结构化查询语言,从数据库中获取业务数据;以及
根据获取的所述表头、业务数据、电子表格名称和数据数目,生成并输出电子表格。
进一步的,所述读取所述查询模板中的电子表格名称、数据数目、查询参数、标题属性和与所述标题属性对应的表头的步骤包括:
预先为所述查询参数的参数名设置一一对应的查询编码;
若接收到的所述查询指令携带查询编码,则根据所述查询编码确定并获取所述查询模板中对应的查询参数的参数名;
若接收到的所述查询指令未携带预先设置的查询编码,则获取全部查询参数的参数名;
读取查询模版中的电子表格名称、数据数目、标题属性、与所述标题属性对应的表头。
进一步的,在所述创建查询模板的步骤之后,还包括:
将所述查询模板通过预设的密钥进行加密生成密文,存储所述密文至数据库中;
所述当接收到查询指令时,读取所述查询模板中的电子表格名称、数据数目、查询参数、标题属性和与所述标题属性对应的表头的步骤包括:
当接收到携带有密钥的查询指令时,获取所述查询指令携带的密钥,通过所述密钥解密所述密文,获取所述查询模板;
读取所述查询模板中的电子表格名称、数据数目、查询参数、标题属性和与所述标题属性对应的表头。
进一步的,在所述将所述条件名与所述参数名一一映射的步骤之后,包括:将所述查询条件以占位符的方式设置于所述查询模板中。
进一步的,所述执行所述待执行的结构化查询语言,从数据库中获取业务数据的步骤包括:
获取所述查询模板的数据数目,根据所述待执行的结构化查询语言,确定从数据库中获取业务数据的数量;
比较所述业务数据的数量与所述数据数目;
若所述业务数据的数量小于或等于数据数目,则执行所述待执行的结构化查询语言,从数据库中获取业务数据;
若所述业务数据的数量大于数据数目,则执行所述待执行的结构化查询语言,从数据库中分多次获取业务数据,其中,每次获取的业务数据的数量小于或等于数据数目。
进一步的,所述执行所述待执行的结构化查询语言,从数据库中获取业务数据的步骤包括:
获取所述查询模板的数据数目,根据所述待执行的结构化查询语言,确定从数据库中获取业务数据的数量;
比较所述业务数据的数量与所述数据数目;
若所述业务数据的数量大于所述数据数目,则识别预先对所述参数名进行的等级标记,其中,所述等级标记至少包括一级等级和二级等级;
删除并备份所述除一级等级以外的其他等级标记的参数名,并将删除的所述参数名通过邮件发送至指定人员;
使用所述一级等级标记的参数名替换所述待执行的结构化查询语言中的全部参数名,并执行所述待执行的结构化查询语言,从数据库中获取业务数据。
为了解决上述技术问题,本申请实施例还提供一种导出电子表格文件的装置,采用了如下所述的技术方案:
一种导出电子表格文件的装置,包括:
创建模块,用于创建查询模板,所述查询模板包括表头、标题属性、待执行的结构化查询语言、电子表格名称、查询参数和数据数目,并将所述表头与所述标题属性一一对应,待执行的结构化查询语言包括查询条件和执行语句,所述查询条件包括条件名,所述查询参数包括参数名,将所述条件名与所述参数名一一映射;
读取模块,用于当接收到查询指令时,读取所述查询模板中的电子表格名称、数据数目、查询参数、标题属性、与所述标题属性对应的表头;
替换模块,用于根据所述查询参数中参数名与所述条件名的映射关系,使用获取的参数名替换所述待执行的结构化查询语言中的对应的条件名,以完成待执行的结构化查询语言的组装;
执行模块,用于执行所述待执行的结构化查询语言,从数据库中获取业务数据;以及
生成模块,用于根据获取的所述表头、业务数据、电子表格名称和数据数目,生成并输出电子表格。
进一步的,所述读取模块包括设置子模块、获取子模块和读取子模块;
所述设置子模块用于预先为所述查询参数的参数名设置一一对应的查询编码;
所述获取子模块用于当接收到的所述查询指令携带查询编码时,根据所述查询编码确定并获取所述查询模板中对应的查询参数的参数名,当接收到的所述查询指令未携带预先设置的查询编码时,获取全部查询参数的参数名;
所述读取子模块用于读取查询模版中的电子表格名称、数据数目、标题属性、与所述标题属性对应的表头。
为了解决上述技术问题,本申请实施例还提供一种计算机设备,采用了如下所述的技术方案:
一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现上述的导出电子表格文件的方法的步骤。
为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,采用了如下所述的技术方案:
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的导出电子表格文件的方法的步骤.
与现有技术相比,本申请实施例主要有以下有益效果:
本申请引进模板模式,先定义好模板,设定好规则,根据设定好的规则读取模板信息,完成电子表格的导出。其中,在解析模板的过程中,通过解析查询参数的参数名,根据映射关系,使用参数名替换数据库执行语句中的条件名,获得组装好的数据库执行语句,从而执行数据库执行语句,从数据库中获得需要的数据值,避免了每次获取不同的数据值都需要重新编写一套导出功能,降低了开发成本,提升了效率,同时实现在***运行时,也可以动态修改参数名,而不会干扰数据库执行语句的执行。并且,***根据参数名获取对应的数据值,而不需要一次性将数据库中所有的数据值导出,避免了数据冗余,提升了***的响应速度,降低***的压力。
附图说明
为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请可以应用于其中的示例性***架构图;
图2根据本申请的导出电子表格文件的方法的一个实施例的流程图;
图3是根据本申请的导出电子表格文件的装置的一个实施例的结构示意图;
图4是根据本申请的计算机设备的一个实施例的结构示意图。
附图标记:200、计算机设备;201、存储器;202、处理器;203、网络接口;300、导出电子表格文件的装置;301、创建模块;302、读取模块;303、替换模块;304、执行模块;305、生成模块。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了使本技术领域的人员更好地理解本申请方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
如图1所示,***架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture ExpertsGroup Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving PictureExperts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的页面提供支持的后台服务器。
需要说明的是,本申请实施例所提供的导出电子表格文件的方法一般由服务器/终端设备执行,相应地,导出电子表格文件的装置一般设置于服务器/终端设备中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,示出了根据本申请的导出电子表格文件的方法的一个实施例的流程图。所述的导出电子表格文件的方法,包括以下步骤:
S1:创建查询模板,所述查询模板包括表头、标题属性、待执行的结构化查询语言、电子表格名称、查询参数和数据数目,并将所述表头与所述标题属性一一对应,待执行的结构化查询语言包括查询条件和执行语句,所述查询条件包括条件名,所述查询参数包括参数名,将所述条件名与所述参数名一一映射。
在本实施例中,具体的,在编写代码时,查询模板包括如下五部分:
exportModels:表头和标题属性;sqlModels:待执行的结构化查询语言;sheetName:Excle表格名称;queryParams:查询参数;countNum:数据数目。比如,代码为:"exportModels":[{"filedName":"id","headerName":"项目id"}];其中"filedName":"id"为标题属性,"headerName":"项目id"为表头。引进模板模式,先定义好模板,便于需要时直接调用模版。
其中,在步骤S1,即在所述将所述条件名与所述参数名一一映射的步骤之后,包括:将所述查询条件以占位符的方式设置于所述查询模板中。
在本实施例中,查询条件以占位符的方式存在于所述查询模板中,实现了防止sql注入,即在后续执行所述待执行的结构化查询语言时,可以保证执行的所述待执行的结构化查询语言未被通过sql注入的方式篡改过,消除了部分安全隐患。
S2:当接收到查询指令时,读取所述查询模板中的电子表格名称、数据数目、查询参数、标题属性和与所述标题属性对应的表头。
在本实施例中,表头和标题属性为模板中预先填写好的内容,可以根据实际需要进行修改,因为表头与标题属性具有一一对应关系,计算机优先识别标题属性后,根据标题属性定位到表头。读取电子表格名称和数据数目,使后续生成的电子表格完整。
具体的,在步骤S2中,即所述读取所述查询模板中的电子表格名称、数据数目、查询参数、标题属性和与所述标题属性对应的表头的步骤包括:
预先为所述查询参数的参数名设置一一对应的查询编码;
若接收到的所述查询指令携带查询编码,则根据所述查询编码确定并获取所述查询模板中对应的查询参数的参数名;
若接收到的所述查询指令未携带预先设置的查询编码,则获取全部查询参数的参数名;
读取查询模版中的电子表格名称、数据数目、标题属性、与所述标题属性对应的表头。
在本实施例中,根据查询编码确定参数名,用于在使用***时不必修改参数名来控制获取的数据,而只需要简单的录入对应的查询编码即可,实现了数据获取的便捷且动态的控制。若接收到的所述查询指令未携带查询编码,则获取全部查询参数,进而获得数据库中符合全部查询条件的业务数据。
在本实施例中,导出电子表格文件的方法运行于其上的电子设备(例如图1所示的服务器/终端设备)可以通过有线连接方式或者无线连接方式接收查询指令。需要指出的是,上述无线连接方式可以包括但不限于3G/4G连接、WiFi连接、蓝牙连接、WiMAX连接、Zigbee连接、UWB(ultra wideband)连接、以及其他现在已知或将来开发的无线连接方式。
此外,在步骤S1,即在所述创建查询模板的步骤之后,还包括:
将所述查询模板通过预设的密钥进行加密生成密文,存储所述密文至数据库中;
在步骤S2中,即所述当接收到查询指令时,读取所述查询模板中的电子表格名称、数据数目、查询参数、标题属性和与所述标题属性对应的表头的步骤包括:
当接收到携带有密钥的查询指令时,获取所述查询指令携带的密钥,通过所述密钥解密所述密文,获取所述查询模板;
读取所述查询模板中的电子表格名称、数据数目、查询参数、标题属性和与所述标题属性对应的表头。
在本实施例中,本申请可以选择常用的加密方法对该查询模板进行加密,包括但不限于MD5加密、HMAC加密和base64加密中任意一种。本申请通过对查询模板进行加密,保障了查询模版的安全,防止其他人员随意获取查询模版,并防止对查询模板的篡改。
S3:根据所述查询参数中参数名与所述条件名的映射关系,使用获取的参数名替换所述待执行的结构化查询语言中的对应的条件名,以完成待执行的结构化查询语言的组装。
在本实施例中,将获取的查询参数的参数名替换所述待执行的结构化查询语言中的查询条件的条件名,获得组装好的待执行的结构化查询语言;实现在***运行时,也可以动态修改参数名,而不会干扰数据库执行语句的执行。
S4:执行所述待执行的结构化查询语言,从数据库中获取业务数据。
在本实施例中,根据参数名获取得到对应的数据值,获取的所有数据值组成业务数据;根据计算机自动组装好的待执行的结构化查询语言从数据库中获得需要的数据值,避免了每次获取不同的数据值都需要重新编写一套导出功能,降低了开发成本,提升了效率。具体的,比如姓名:张三;姓名为参数名,张三为数据值;进一步说明,“姓名”在页面的查询参数中称为“参数名”,在数据库中称为“属性名”。本申请中查询参数包括参数名,参数名与数据库中的属性名为一一映射关系,根据参数名获得属性名,根据属性名在数据库中查找到对应的数据值。本申请中的参数名可以根据实际操作过程中的实际需要进行修改。
具体的,在步骤S4中,即所述执行所述待执行的结构化查询语言,从数据库中获取业务数据的步骤包括:
获取所述查询模板的数据数目,根据所述待执行的结构化查询语言,确定从数据库中获取业务数据的数量;
比较所述业务数据的数量与所述数据数目;
若所述业务数据的数量小于或等于数据数目,则执行所述待执行的结构化查询语言,从数据库中获取业务数据。
若所述业务数据的数量大于数据数目,则执行所述待执行的结构化查询语言,从数据库中分多次获取业务数据,其中,每次获取的业务数据的数量小于或等于数据数目。
在本实施例中,如果所述业务数据的数量小于或等于数据数目,则说明即将要从数据库中获取的业务数据的数量符合要求,则可以直接执行所述待执行的结构化查询语言,本申请增加一道数量比较的过程,保证了***可以负担获取的数据数量,有效降低***宕机的情况发生。本申请在查询模版中预设数据数目,保证每次获取的业务数据的数量小于或等于数据数目,若需要获取的业务数据的量过多,可以与相关人员进行沟通,改变查询参数,进而改变查询条件,实现有效的控制获取的业务数据的数量,保证***的迅速响应和运行,同时避免***超负荷工作,延长***的使用寿命。
此外,在步骤S4中,即所述执行所述待执行的结构化查询语言,从数据库中获取业务数据的步骤包括:
获取所述查询模板的数据数目,根据所述待执行的结构化查询语言,确定从数据库中获取业务数据的数量;
比较所述业务数据的数量与所述数据数目;
若所述业务数据的数量大于所述数据数目,则识别预先对所述参数名进行的等级标记,其中,所述等级标记至少包括一级等级和二级等级;
删除并备份所述除一级等级以外的其他等级标记的参数名,并将删除的所述参数名通过邮件发送至指定人员;
使用所述一级等级标记的参数名替换所述待执行的结构化查询语言中的全部参数名,并执行所述待执行的结构化查询语言,从数据库中获取业务数据。
在本实施例中,本申请还可以直接删除已经完成组装的待执行的结构化查询语言中的除一级等级以外的其他等级标记的参数名,而不需要重新进行替换动作。但执行替换动作有助于日志的记录,便于以后的追溯。本申请通过删除等级标记较低的参数名,实现减少获取的业务数据的数量,从而在获取到主要的业务数据的同时,保证***的运行和响应速度。
S5:根据获取的所述表头、业务数据、电子表格名称和数据数目,生成并输出电子表格。
在本实施例中,本申请的电子表格包括但不限于excle表格;可以调用***中预先存储的Excle工具,根据获取的所述表头、业务数据、电子表格名称和数据数目,生成并输出电子表格。
本申请通过引进模板模式,先定义好模板,设定好规则,根据设定好的规则读取模板信息,完成电子表格的导出。其中,在解析模板的过程中,通过解析查询参数的参数名,根据映射关系,使用参数名替换数据库执行语句中的条件名,获得组装好的数据库执行语句,从而执行数据库执行语句,从数据库中获得需要的数据值,避免了每次获取不同的数据值都需要重新编写一套导出功能,降低了开发成本,提升了效率,同时实现在***运行时,也可以动态修改参数名,而不会干扰数据库执行语句的执行。并且,***根据参数名获取对应的数据值,而不需要一次性将数据库中所有的数据值导出,避免了数据冗余,提升了***的响应速度,降低***的压力。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
进一步参考图3,作为对上述图2所示方法的实现,本申请提供了一种导出电子表格文件的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图3所示,本实施例所述的导出电子表格文件的装置300包括:创建模块301、读取模块302、替换模块303、执行模块304以及生成模块305。其中:所述创建模块301,用于创建查询模板,所述查询模板包括表头、标题属性、待执行的结构化查询语言、电子表格名称、查询参数和数据数目,并将所述表头与所述标题属性一一对应,待执行的结构化查询语言包括查询条件和执行语句,所述查询条件包括条件名,所述查询参数包括参数名,将所述条件名与所述参数名一一映射;所述读取模块302,用于当接收到查询指令时,读取所述查询模板中的电子表格名称、数据数目、查询参数、标题属性、与所述标题属性对应的表头;所述替换模块303,用于根据所述查询参数中参数名与所述条件名的映射关系,使用获取的参数名替换所述待执行的结构化查询语言中的对应的条件名,以完成待执行的结构化查询语言的组装;所述执行模块304,用于执行所述待执行的结构化查询语言,从数据库中获取业务数据;所述生成模块305,用于根据获取的所述表头、业务数据、电子表格名称和数据数目,生成并输出电子表格。
在本实施例中,本申请引进模板模式,先定义好模板,设定好规则,根据设定好的规则读取模板信息,完成Excle导出。其中,在数据库执行语句中使用占位符的方式实现了防止sql注入,并在解析模板的过程中,通过解析查询参数的参数名,根据映射关系,使用参数名替换数据库执行语句中的条件名,获得组装好的数据库执行语句,从而执行数据库执行语句,从数据库中获得需要的数据值,避免了每次获取不同的数据值都需要重新编写一套导出功能,降低了开发成本,提升了效率,同时实现在***运行时,也可以动态修改参数名,而不会干扰数据库执行语句的执行。并且,***根据参数名获取对应的数据值,而不需要一次性将数据库中所有的数据值导出,避免了数据冗余,提升了***的响应速度,降低***的压力。
所述读取模块302设置子模块、获取子模块和读取子模块;所述设置子模块用于预先为所述查询参数的参数名设置一一对应的查询编码;所述获取子模块用于当接收到的所述查询指令携带查询编码时,根据所述查询编码确定并获取所述查询模板中对应的查询参数的参数名,当接收到的所述查询指令未携带预先设置的查询编码时,获取全部查询参数的参数名;所述读取子模块用于读取查询模版中的电子表格名称、数据数目、标题属性、与所述标题属性对应的表头。
所述执行模块304包括确定子模块、比较子模块和执行子模块,所述确定子模块用于获取所述查询模板的数据数目,根据所述待执行的结构化查询语言,确定从数据库中获取业务数据的数量;所述比较子模块用于比较所述业务数据的数量与所述数据数目;所述执行子模块用于当所述业务数据的数量小于或等于数据数目时,执行所述待执行的结构化查询语言,从数据库中获取业务数据,当所述业务数据的数量大于数据数目时,执行所述待执行的结构化查询语言,从数据库中分多次获取业务数据,其中,每次获取的业务数据的数量小于或等于数据数目。
此外,所述执行子模块包括识别单元、删除单元和替换单元;所述识别单元用于当所述业务数据的数量大于所述数据数目时,识别预先对所述参数名进行的等级标记,其中,所述等级标记至少包括一级等级和二级等级;所述删除单元用于删除并备份所述除一级等级以外的其他等级标记的参数名,并将删除的所述参数名通过邮件发送至指定人员;所述替换单元用于使用所述一级等级标记的参数名替换所述待执行的结构化查询语言中的全部参数名,并执行所述待执行的结构化查询语言,从数据库中获取业务数据。
在本实施例的一些可选的实现方式中,上述装置300还包括:设置模块和加密模块,所述设置模块用于将所述查询条件以占位符的方式设置于所述查询模板中;所述加密模块用于将所述查询模板通过预设的密钥进行加密生成密文,存储所述密文至数据库中。所述读取模块302还包括解密子模块,所述解密子模块用于当接收到携带有密钥的查询指令时,获取所述查询指令携带的密钥,通过所述密钥解密所述密文,获取所述查询模板,并将获取的所述查询模板传输至上述读取子模块。
为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图4,图4为本实施例计算机设备基本结构框图。
所述计算机设备200包括通过***总线相互通信连接存储器201、处理器202、网络接口203。需要指出的是,图中仅示出了具有组件201-203的计算机设备200,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
所述存储器201至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器201可以是所述计算机设备200的内部存储单元,例如该计算机设备200的硬盘或内存。在另一些实施例中,所述存储器201也可以是所述计算机设备200的外部存储设备,例如该计算机设备200上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器201还可以既包括所述计算机设备200的内部存储单元也包括其外部存储设备。本实施例中,所述存储器201通常用于存储安装于所述计算机设备200的操作***和各类应用软件,例如导出电子表格文件的方法的程序代码等。此外,所述存储器201还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器202在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器202通常用于控制所述计算机设备200的总体操作。本实施例中,所述处理器202用于运行所述存储器201中存储的程序代码或者处理数据,例如运行所述导出电子表格文件的方法的程序代码。
所述网络接口203可包括无线网络接口或有线网络接口,该网络接口203通常用于在所述计算机设备200与其他电子设备之间建立通信连接。
在本实施例中,实现在***运行时,也可以动态修改参数名,而不会干扰数据库执行语句的执行。并且,***根据参数名获取对应的数据值,而不需要一次性将数据库中所有的数据值导出,避免了数据冗余,提升了***的响应速度。
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有导出电子表格文件的程序,所述导出电子表格文件的程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的导出电子表格文件的方法的步骤。
在本实施例中,实现在***运行时,也可以动态修改参数名,而不会干扰数据库执行语句的执行。并且,***根据参数名获取对应的数据值,而不需要一次性将数据库中所有的数据值导出,避免了数据冗余,提升了***的响应速度。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。
Claims (10)
1.一种导出电子表格文件的方法,其特征在于,包括下述步骤:
创建查询模板,所述查询模板包括表头、标题属性、待执行的结构化查询语言、电子表格名称、查询参数和数据数目,并将所述表头与所述标题属性一一对应,待执行的结构化查询语言包括查询条件和执行语句,所述查询条件包括条件名,所述查询参数包括参数名,将所述条件名与所述参数名一一映射;
当接收到查询指令时,读取所述查询模板中的电子表格名称、数据数目、查询参数、标题属性和与所述标题属性对应的表头;
根据所述查询参数中参数名与所述条件名的映射关系,使用获取的参数名替换所述待执行的结构化查询语言中的对应的条件名,以完成待执行的结构化查询语言的组装;
执行所述待执行的结构化查询语言,从数据库中获取业务数据;以及
根据获取的所述表头、业务数据、电子表格名称和数据数目,生成并输出电子表格。
2.根据权利要求1所述的导出电子表格文件的方法,其特征在于,所述读取所述查询模板中的电子表格名称、数据数目、查询参数、标题属性和与所述标题属性对应的表头的步骤包括:
预先为所述查询参数的参数名设置一一对应的查询编码;
若接收到的所述查询指令携带查询编码,则根据所述查询编码确定并获取所述查询模板中对应的查询参数的参数名;
若接收到的所述查询指令未携带预先设置的查询编码,则获取全部查询参数的参数名;
读取查询模版中的电子表格名称、数据数目、标题属性、与所述标题属性对应的表头。
3.根据权利要求1所述的导出电子表格文件的方法,其特征在于,在所述创建查询模板的步骤之后,还包括:
将所述查询模板通过预设的密钥进行加密生成密文,存储所述密文至数据库中;
所述当接收到查询指令时,读取所述查询模板中的电子表格名称、数据数目、查询参数、标题属性和与所述标题属性对应的表头的步骤包括:
当接收到携带有密钥的查询指令时,获取所述查询指令携带的密钥,通过所述密钥解密所述密文,获取所述查询模板;
读取所述查询模板中的电子表格名称、数据数目、查询参数、标题属性和与所述标题属性对应的表头。
4.根据权利要求1所述的导出电子表格文件的方法,其特征在于,在所述将所述条件名与所述参数名一一映射的步骤之后,还包括:
将所述查询条件以占位符的方式设置于所述查询模板中。
5.根据权利要求1至4任意一项所述的导出电子表格文件的方法,其特征在于,所述执行所述待执行的结构化查询语言,从数据库中获取业务数据的步骤包括:
获取所述查询模板的数据数目,根据所述待执行的结构化查询语言,确定从数据库中获取业务数据的数量;
比较所述业务数据的数量与所述数据数目;
若所述业务数据的数量小于或等于数据数目,则执行所述待执行的结构化查询语言,从数据库中获取业务数据;
若所述业务数据的数量大于数据数目,则执行所述待执行的结构化查询语言,从数据库中分多次获取业务数据,其中,每次获取的业务数据的数量小于或等于数据数目。
6.根据权利要求1至4任意一项所述的导出电子表格文件的方法,其特征在于,所述执行所述待执行的结构化查询语言,从数据库中获取业务数据的步骤包括:
获取所述查询模板的数据数目,根据所述待执行的结构化查询语言,确定从数据库中获取业务数据的数量;
比较所述业务数据的数量与所述数据数目;
若所述业务数据的数量大于所述数据数目,则识别预先对所述参数名进行的等级标记,其中,所述等级标记至少包括一级等级和二级等级;
删除并备份所述除一级等级以外的其他等级标记的参数名,并将删除的所述参数名通过邮件发送至指定人员;
使用所述一级等级标记的参数名替换所述待执行的结构化查询语言中的全部参数名,并执行所述待执行的结构化查询语言,从数据库中获取业务数据。
7.一种导出电子表格文件的装置,其特征在于,包括:
创建模块,用于创建查询模板,所述查询模板包括表头、标题属性、待执行的结构化查询语言、电子表格名称、查询参数和数据数目,并将所述表头与所述标题属性一一对应,待执行的结构化查询语言包括查询条件和执行语句,所述查询条件包括条件名,所述查询参数包括参数名,将所述条件名与所述参数名一一映射;
读取模块,用于当接收到查询指令时,读取所述查询模板中的电子表格名称、数据数目、查询参数、标题属性、与所述标题属性对应的表头;
替换模块,用于根据所述查询参数中参数名与所述条件名的映射关系,使用获取的参数名替换所述待执行的结构化查询语言中的对应的条件名,以完成待执行的结构化查询语言的组装;
执行模块,用于执行所述待执行的结构化查询语言,从数据库中获取业务数据;以及
生成模块,用于根据获取的所述表头、业务数据、电子表格名称和数据数目,生成并输出电子表格。
8.根据权利要求7所述的导出电子表格文件的方法,其特征在于,所述读取模块包括设置子模块、获取子模块和读取子模块;
所述设置子模块用于预先为所述查询参数的参数名设置一一对应的查询编码;
所述获取子模块用于当接收到的所述查询指令携带查询编码时,根据所述查询编码确定并获取所述查询模板中对应的查询参数的参数名,当接收到的所述查询指令未携带预先设置的查询编码时,获取全部查询参数的参数名;
所述读取子模块用于读取查询模版中的电子表格名称、数据数目、标题属性、与所述标题属性对应的表头。
9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至6中任一项所述的导出电子表格文件的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的导出电子表格文件的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010348340.9A CN111680477A (zh) | 2020-04-28 | 2020-04-28 | 导出电子表格文件的方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010348340.9A CN111680477A (zh) | 2020-04-28 | 2020-04-28 | 导出电子表格文件的方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111680477A true CN111680477A (zh) | 2020-09-18 |
Family
ID=72452215
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010348340.9A Pending CN111680477A (zh) | 2020-04-28 | 2020-04-28 | 导出电子表格文件的方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111680477A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112182107A (zh) * | 2020-09-29 | 2021-01-05 | 中国平安财产保险股份有限公司 | 名单数据获取方法、装置、计算机设备及存储介质 |
CN112632006A (zh) * | 2020-12-18 | 2021-04-09 | 平安普惠企业管理有限公司 | 电子报表文件导出方法、装置、设备及存储介质 |
CN112949275A (zh) * | 2021-03-12 | 2021-06-11 | 中国平安财产保险股份有限公司 | 将电子表格导入数据库的方法、装置、设备及存储介质 |
CN112965982A (zh) * | 2021-03-16 | 2021-06-15 | 中国平安财产保险股份有限公司 | 表格处理方法、装置、设备及存储介质 |
CN116756779A (zh) * | 2023-08-17 | 2023-09-15 | 青岛诺亚信息技术有限公司 | 一种电子表格数据对象化存储***及方法 |
-
2020
- 2020-04-28 CN CN202010348340.9A patent/CN111680477A/zh active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112182107A (zh) * | 2020-09-29 | 2021-01-05 | 中国平安财产保险股份有限公司 | 名单数据获取方法、装置、计算机设备及存储介质 |
CN112182107B (zh) * | 2020-09-29 | 2023-11-03 | 中国平安财产保险股份有限公司 | 名单数据获取方法、装置、计算机设备及存储介质 |
CN112632006A (zh) * | 2020-12-18 | 2021-04-09 | 平安普惠企业管理有限公司 | 电子报表文件导出方法、装置、设备及存储介质 |
CN112949275A (zh) * | 2021-03-12 | 2021-06-11 | 中国平安财产保险股份有限公司 | 将电子表格导入数据库的方法、装置、设备及存储介质 |
CN112965982A (zh) * | 2021-03-16 | 2021-06-15 | 中国平安财产保险股份有限公司 | 表格处理方法、装置、设备及存储介质 |
CN112965982B (zh) * | 2021-03-16 | 2023-03-21 | 中国平安财产保险股份有限公司 | 表格处理方法、装置、设备及存储介质 |
CN116756779A (zh) * | 2023-08-17 | 2023-09-15 | 青岛诺亚信息技术有限公司 | 一种电子表格数据对象化存储***及方法 |
CN116756779B (zh) * | 2023-08-17 | 2023-11-17 | 青岛诺亚信息技术有限公司 | 一种电子表格数据对象化存储***及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111680477A (zh) | 导出电子表格文件的方法、装置、计算机设备及存储介质 | |
CN111414407A (zh) | 数据库的数据查询方法、装置、计算机设备及存储介质 | |
CN111814179A (zh) | 用户权限管理和数据控制方法及其相关设备 | |
CN112199442B (zh) | 分布式批量下载文件方法、装置、计算机设备及存储介质 | |
WO2022095518A1 (zh) | 接口自动化测试方法、装置、计算机设备及存储介质 | |
CN111914135A (zh) | 数据查询方法、装置、电子设备及存储介质 | |
CN115017107A (zh) | 基于保护隐私的数据检索方法、装置、计算机设备及介质 | |
CN112182004B (zh) | 实时查看数据方法、装置、计算机设备及存储介质 | |
CN115757495A (zh) | 缓存数据处理方法、装置、计算机设备及存储介质 | |
CN112468409A (zh) | 访问控制方法、装置、计算机设备及存储介质 | |
CN113377372A (zh) | 业务规则的解析方法、装置、计算机设备及存储介质 | |
CN112860662A (zh) | 数据血缘关系建立方法、装置、计算机设备及存储介质 | |
CN112286815A (zh) | 一种接口测试脚本的生成方法及其相关设备 | |
CN113282591B (zh) | 权限过滤方法、装置、计算机设备及存储介质 | |
CN112363997B (zh) | 数据版本管理方法、装置及存储介质 | |
CN112436943B (zh) | 基于大数据的请求去重方法、装置、设备及存储介质 | |
CN112416934A (zh) | hive表增量数据同步方法、装置、计算机设备及存储介质 | |
CN113434906A (zh) | 数据查询方法、装置、计算机设备及存储介质 | |
CN113010542A (zh) | 业务数据处理方法、装置、计算机设备及存储介质 | |
CN116842012A (zh) | 一种Redis集群的分片存储方法、装置、设备及存储介质 | |
CN113626438B (zh) | 一种数据表管理的方法、装置、计算机设备及存储介质 | |
CN113283759B (zh) | 账户风险画像更新方法、装置、设备及存储介质 | |
CN115543428A (zh) | 一种基于策略模板的模拟数据生成方法和装置 | |
CN112416875A (zh) | 日志管理方法、装置、计算机设备及存储介质 | |
CN113554315A (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 |