CN104657123B - 一种动态导出文件的方法 - Google Patents
一种动态导出文件的方法 Download PDFInfo
- Publication number
- CN104657123B CN104657123B CN201310594814.8A CN201310594814A CN104657123B CN 104657123 B CN104657123 B CN 104657123B CN 201310594814 A CN201310594814 A CN 201310594814A CN 104657123 B CN104657123 B CN 104657123B
- Authority
- CN
- China
- Prior art keywords
- export
- file
- sql
- derived series
- data file
- 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.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种动态导出文件的方法,将需要导出页面的SQL文件配置进XML文件中,同时将需要导出页面在前台显示列的名称配置进XML文件中;根据前台显示列的名称与SQL文件中相应的字段的对应关系,对XML文件中的SQL文件及其中的列进行解析并将解析结果放入到变量中;通过接口程序获取用户自定义的导出列和导出列次序以及单个数据文件的导出行数;通过对设定字符的识别,将变量中存放的SQL文件的解析结果分解为多个小段,根据导出列和导出列次序对多个小段进行重新拼接,得到目标SQL文件;根据目标SQL文件生成JAVA结果集,将JAVA结果集与单个数据文件的导出行数进行运算,计算出分割数据文件的个数,并分批次将各分割数据文件导出。
Description
技术领域
本发明涉及数据处理领域,具体而言,涉及一种动态导出文件的方法。
背景技术
目前,随着基于J2EE(Java2Platform,Enterprise Edition,Java2平台企业版)架构的应用软件的不断发展,各种功能越来越强大,极大地方便了用户的操作,同时各种各样的功能所设计的数据也越来越多,令人眼花缭乱。在大数量面前,普通的业务系统仅是对数据进行展示或者简单的处理后展示,用户需要在这些繁杂的数据中查找出符合自己需要的数据,数据导出能满足用户的需求,也是最好的方式。
一般的数据导出程序都是固定的导出列、导出列的顺序,但是用户有时需要的导出列并非是全部,所以普通的导出并不能完全满足用户导出数据的要求。另外,普通的导出数据文件,若是数据量很大,那么导出文件也是很大的,对于用户来说,在相当大的数据文件上筛选数据,那是比较费时的。
发明内容
本发明提供一种动态导出文件的方法,用以现有技术中用户不能动态配置导出文件的问题。
为达到上述目的,本发明提供了一种动态导出文件的方法,包括以下步骤:
将需要导出页面的SQL(Structured Query Language,结构化查询语言)文件配置进XML(Extensible Markup Language,可扩展标记语言)文件中,同时将需要导出页面在前台显示列的名称配置进XML文件中,前台显示列的名称与SQL文件中相应的字段一一对应;
根据前台显示列的名称与SQL文件中相应的字段的对应关系,对XML文件中的SQL文件及其中的列进行解析,将SQL文件及其中的列的解析结果放入到变量中;
通过接口程序获取用户自定义的导出列和导出列次序以及单个数据文件的导出行数;
通过对设定字符的识别,将变量中存放的SQL文件的解析结果分解为多个小段,根据导出列和导出列次序对多个小段进行重新拼接,得到目标SQL文件;
根据目标SQL文件生成JAVA结果集,将JAVA结果集与单个数据文件的导出行数进行运算,计算出分割数据文件的个数,并分批次将各分割数据文件导出。
可选的,设定字符为逗号。
可选的,采用多次迭代的方式,根据导出列和导出列次序对多个小段进行重新拼接。
可选的,接口程序为需要导出页面引用的JS(Javascript,一种客户端脚本语言)文件和JSP(Java Server Pages,Java服务器页面)文件。
本发明的动态导出文件的方法,使用户可以根据自身需要,导出数据中所需的列,并且可以把大数据量的文件,按照批次导出,便于用户在导出后对数据文件进行筛选等操作。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一个实施例的动态导出文件的方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决用户可动态配置导出文件的技术问题,必须解决三个方面的问题:定义导出配置文件的问题、动态选择导出列的问题、支持大数据量文件多种导出方式的问题。
首先是定义导出配置文件的问题,在WEB(网络)应用中,常见数据的导出很多,由于各个页面导出时,所采用的SQL是不一样的,鉴于XML所具有的通用性方面,采用XML配置SQL的方式。将各个导出页面的SQL配置进XML中,同时配置进XML中的还有前台显示列的名称,默认的显示列的名字与SQL中查出的字段是一一对应的。
有了XML配置文件,那么就需要解决XML文件的解析,此处的解析,主要以解析SQL以及导出COLUMN(列)为主。解析XML的程序,将解析所得的SQL以及COLUMN存放到变量里,供查询程序使用。
其次,需要解决的是,如何使导出页面能够无缝的调用到导出程序。所谓无缝,是指即使系统有很多需要导出的页面,只需在相关的页面添加几句话就可以实现数据导出。为了做到这点,我们在导出程序中有一个公用的JS文件,用来统一处理导出所用变量,只需要在需要导出的页面添加此JS的引用,同时添加一个导出页面JSP的引用,就可以无缝的实现导出。在公用的JS中,我们使用了DWR(Direct Web Remoting,网络远程调用框架)技术,可以及时的通过变量将用户所自定义的内容从前端页面获取到,然后传到后台JAVA端,对导出指令进行及时的处理。
再次,便是动态选择导出列的问题,由于用户导出页面繁多,并且在各个页面上,用户所关注的内容不一样,因此提供给用户动态选择导出列以及导出顺序的功能。动态选择导出列,是在默认的导出列上选择导出哪些列,以及选择导出列的排列顺序。此处的关键在于程序将默认的SQL处理为符合条件的SQL。
处理程序的原理是将变量中存放的原始SQL以及COLUMN读取出来,然后根据用户选择的导出列以及导出列的顺序,对原始SQL进行转化,通过对特殊字符(例如逗号)的识别,将原始SQL分解成多个小段,然后根据从前端传过来的用户自定义内容以及COLUMN,用多次迭代的方式,将这多段的SQL进行重新拼接,拼接成符合要求的SQL。
然后将此SQL传递给查询程序,查询程序生成查询结果,将结果发送给生成EXCEL的程序,此EXCEL的程序调用的是APACHE的一个导出工具,最后生成符合条件的JAVA数据包。
最后,支持大数据量文件多种导出方式,由于实际中,用户所导出的文件都较大,不适合用户进行筛选等操作,所以支持大数据量文件分批次导出、分页导出等。分批次导出时将文件分为几个大小(可以自行设定,设置项为XX条数据)一致的小文件,导出完成时,即是生成了多个导出文件,方便用户进行各项操作。导出多个文件运用了AJAX技术,并且是在导出程序中添加了变量,读取用户前台设置的自定义条数,然后将导出文件按照总的条数与设定的条数求出的总批次,分批次导出。
图1为本发明一个实施例的动态导出文件的方法流程图。如图所示,该动态导出文件的方法包括以下步骤:
S102,将需要导出页面的SQL文件配置进XML文件中,同时将需要导出页面在前台显示列的名称配置进XML文件中,前台显示列的名称与SQL文件中相应的字段一一对应;
S104,根据前台显示列的名称与SQL文件中相应的字段的对应关系,对XML文件中的SQL文件及其中的列进行解析,将SQL文件及其中的列的解析结果放入到变量中;
S106,通过接口程序(如需要导出页面引用的JS文件和JSP文件)获取用户自定义的导出列和导出列次序以及单个数据文件的导出行数;
S108,通过对设定字符(如逗号)的识别,将变量中存放的SQL文件的解析结果分解为多个小段,根据导出列和导出列次序对多个小段进行重新拼接(如可采用多次迭代的方式拼接),得到目标SQL文件;
S110,根据目标SQL文件生成JAVA结果集,将JAVA结果集与单个数据文件的导出行数进行运算,计算出分割数据文件的个数,并分批次将各分割数据文件导出。
在上述实施例中,我们开发了可以根据用户自身需要,自定义导出数据文件的列、导出列的顺序以及大数据文件切割的新型导出功能。这种新型的导出功能可以使用户的自己操作的灵活度变大,自定义导出数据文件的数据列以及列的排列顺序;并且针对大数据量文件,由于大数据量文件的操作性较差,提供了切割大数据文件的功能,将一个大数据文件切割为多个数据文件,并且导出,这样一个数据量可以自定义的文件,明显是有助于用户的数据筛选。
我们可以将此新型的导出功能应用于税务行业,即疑点信息库。疑点信息库是提供给税务行业,对大量税务数据进行采集、分析,发现其中可疑行为的数据分析系统。在该系统中,税务人员在不同时期、不同背景下,会对税务数据各个方面进行不同的分析。由于税务的数据量较大,导出数据较为频繁,在这样的需求下,就要求软件系统能提供给客户可自定义的导出数据文件功能。
首先,动态导出数据文件的功能给税务用户带来了方便,由于用户常年需要导出大量的疑点数据进行实地核查等操作,并且每个省份对于单个疑点的关注度不甚一致,那么提供给用户自定义导出列以及导出列次序,用户根据自身的需要,来自行定义导出数据文件中数据的导出列、导出列的顺序,方便用户进行数据筛选。
其次,由于导出数据文件的数据量一般都比较巨大,如此大数据量的形成单个文件,对于用户来讲,操作是什么不便的。那么提供给用户可以自定义的设定导出数据的行数,使单个数据文件转变为多个数据量较小的文件,是十分有意义的。
综上所述,本发明增加了用户可以动态导出的功能,使用户使用更加灵活方便。与其它同类型的导出方法比较,本发明的优势在于:
1、用户如果有很多导出页面,只要在配置文件中配置了SQL、COLUMN以及在导出页面引用JS文件、JSP文件就可以增加导出功能,是即插即用的,不依赖于某个系统,方便开发者使用。
2、用户可以自定义导出的列数以及导出列的排序,方便用户根据自身的业务需求定制导出列,极大的方便了用户。
3、用户可以分批次的导出大数据量文件,每个文件的大小可以自行设置,尤为方便用户进行筛选等操作。
本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域普通技术人员可以理解:实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。
Claims (1)
1.一种动态导出文件的方法,其特征在于,包括以下步骤:
将需要导出页面的SQL文件配置进XML文件中,同时将所述需要导出页面在前台显示列的名称配置进所述XML文件中,所述前台显示列的名称与所述SQL文件中相应的字段一一对应;
根据所述前台显示列的名称与所述SQL文件中相应的字段的对应关系,对所述XML文件中的SQL文件及其中的列进行解析,将所述SQL文件及其中的列的解析结果放入到变量中;
通过接口程序获取用户自定义的导出列和导出列次序以及单个数据文件的导出行数;
通过对设定字符的识别,将所述变量中存放的所述SQL文件的解析结果分解为多个小段,根据所述导出列和导出列次序对所述多个小段进行重新拼接,得到目标SQL文件;
根据所述目标SQL文件生成JAVA结果集,将所述JAVA结果集与所述单个数据文件的导出行数进行运算,计算出分割数据文件的个数,并分批次将各所述分割数据文件导出;
采用多次迭代的方式,根据所述导出列和导出列次序对所述多个小段进行重新拼接;
所述设定字符为逗号;
所述接口程序为所述需要导出页面引用的JS文件和JSP文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310594814.8A CN104657123B (zh) | 2013-11-21 | 2013-11-21 | 一种动态导出文件的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310594814.8A CN104657123B (zh) | 2013-11-21 | 2013-11-21 | 一种动态导出文件的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104657123A CN104657123A (zh) | 2015-05-27 |
CN104657123B true CN104657123B (zh) | 2018-09-11 |
Family
ID=53248312
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310594814.8A Active CN104657123B (zh) | 2013-11-21 | 2013-11-21 | 一种动态导出文件的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104657123B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105279032B (zh) * | 2015-11-24 | 2019-06-28 | 浪潮(北京)电子信息产业有限公司 | 一种同步接口报文与javaBean的方法及装置 |
CN106919684A (zh) * | 2017-03-02 | 2017-07-04 | 百度在线网络技术(北京)有限公司 | 数据导出方法、装置、设备及存储介质 |
CN107656968B (zh) * | 2017-08-31 | 2021-04-23 | 武汉斗鱼网络科技有限公司 | 大批量业务数据导出方法及系统 |
CN109033410B (zh) * | 2018-08-03 | 2021-10-29 | 韩雪松 | 一种基于正则与字符串切割的sql解析方法 |
CN112685481B (zh) * | 2019-10-17 | 2023-11-03 | 北京京东振世信息技术有限公司 | 一种数据处理方法和装置 |
CN111290745A (zh) * | 2020-02-11 | 2020-06-16 | 车配齐(珠海横琴)科技有限公司 | 一种实现通用数据导出的装置及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1464439A (zh) * | 2002-06-18 | 2003-12-31 | 国际商业机器公司 | 在web应用中产生定制商业报表的系统和方法 |
CN101645073A (zh) * | 2009-08-25 | 2010-02-10 | 浪潮电子信息产业股份有限公司 | 一种将已有数据库文件导入嵌入式数据库的方法 |
CN101826085A (zh) * | 2009-12-30 | 2010-09-08 | 厦门市美亚柏科信息股份有限公司 | 一种基于ajax的网页在线导入/导出大文件的方法 |
CN103092993A (zh) * | 2013-02-18 | 2013-05-08 | 五八同城信息技术有限公司 | 数据导出方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050222990A1 (en) * | 2004-04-06 | 2005-10-06 | Milne Kenneth T | Methods and systems for using script files to obtain, format and disseminate database information |
-
2013
- 2013-11-21 CN CN201310594814.8A patent/CN104657123B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1464439A (zh) * | 2002-06-18 | 2003-12-31 | 国际商业机器公司 | 在web应用中产生定制商业报表的系统和方法 |
CN101645073A (zh) * | 2009-08-25 | 2010-02-10 | 浪潮电子信息产业股份有限公司 | 一种将已有数据库文件导入嵌入式数据库的方法 |
CN101826085A (zh) * | 2009-12-30 | 2010-09-08 | 厦门市美亚柏科信息股份有限公司 | 一种基于ajax的网页在线导入/导出大文件的方法 |
CN103092993A (zh) * | 2013-02-18 | 2013-05-08 | 五八同城信息技术有限公司 | 数据导出方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104657123A (zh) | 2015-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104657123B (zh) | 一种动态导出文件的方法 | |
CN110704398B (zh) | 从MySQL到Oracle的数据库迁移方法、装置及计算机设备 | |
US20170068996A1 (en) | Method for Configuring Advertisement Template, Server, and System | |
US7805669B2 (en) | System and method for selective form configuration | |
WO2016082468A1 (zh) | 数据图形化方法、装置及数据库服务器 | |
CN110781183B (zh) | Hive数据库中增量数据的处理方法、装置以及计算机设备 | |
CN112131289B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN110019116A (zh) | 数据追溯方法、装置、数据处理设备及计算机存储介质 | |
CN112256684B (zh) | 一种报表生成方法、终端设备及存储介质 | |
CN110597896A (zh) | 一种数据展示方法、数据展示装置及终端设备 | |
CN105630992A (zh) | 静态页面中的场景显示方法及装置 | |
US9934291B2 (en) | Dynamic presentation of a results set by a form-based software application | |
CN106557454A (zh) | 文档到表格的转换方法及转换系统 | |
CN108021629B (zh) | 一种广告素材数据生成方法、装置及系统 | |
US20150058716A1 (en) | System and method for summarizing documents | |
CN104021216B (zh) | 消息代理服务器及信息发布订阅方法和系统 | |
US9886424B2 (en) | Web application framework for extracting content | |
CN105867984A (zh) | 在网页中显示任务状态的方法、装置、客户端和移动设备 | |
CN116136880A (zh) | 数据展示方法、装置、电子设备及存储介质 | |
CN106919630A (zh) | 一种基于sql表达式的风险指标公式生成方法及系统 | |
CN109408577B (zh) | Oracle数据库json解析方法、系统、装置及可存储介质 | |
CN106339381A (zh) | 一种信息处理方法及装置 | |
CN109857735A (zh) | 一种通过excel进行规则描述的数据构造方法及系统 | |
US20150067475A1 (en) | Web Application Framework | |
CN117648086A (zh) | 脚本文件的转换方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |