基于模版与标记实现的Excel显示与导出方法及系统的制作方法

文档序号:6494375阅读:213来源:国知局
基于模版与标记实现的Excel显示与导出方法及系统的制作方法
【专利摘要】本发明涉及一种基于模版与标记实现的Excel显示与导出方法,包括以下步骤:与应用平台调用接口类对接并接收数据封装传入;到应用数据库中查询并获取已经上传的Excel模板;解析模板标记获得每一个标记的行与列的信息保存进位置信息对象;查询应用数据库中存储的模板标记与数据来源对应关系;根据位置信息,标记与数据来源对应关系,对数据进行加工,把数据填充到Excel对应的单元格中,并把Excel暂存到内存中;将Excel提供对外输出。根据本发明的方法,用户需求改变修改Excel模板时,不需要重新修改大量的程序位置信息代码,只需要将更新的模板覆盖上传并简单配置关系就可以达到浏览器Html展示以及导出下载功能。
【专利说明】基于模版与标记实现的Excel显示与导出方法及系统
【技术领域】
[0001]本发明涉及利用开源POI与JAVA相结合进行Excel报表开发领域,特别涉及一种利用POI技术基于模版与标记实现的Excel显示与导出功能系统。【背景技术】
[0002]Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能,POI提供了一组操纵Windows文档的JavaAPI,目前比较成熟的是HSSF接口,处理MS Excel对象。它不仅仅是用csv生成的没有格式的可以由Excel转换的文档,而是真正的Excel对象,通过使用该对象可以控制一些属性如 sheet, cell 等等。
[0003]POI包括以下结构:
[0004]HSSF 一提供读写Microsoft Excel格式档案的功能。
[0005]XSSF 一提供读写Microsoft Excel 00XML格式档案的功能。
[0006]HWPF —提供读写Microsoft Word格式档案的功能。
[0007]HSLF 一提供读写Microsoft PowerPoint格式档案的功能。
[0008]HDGF—提供读写Microsoft Visio格式档案的功能。
[0009]本文用到的是POI 的 HSSF, HSSF 是 Horrible Spreadsheet Format 的缩写。他提供了一些操作Excel表格的底层基本操作,HSSF就本质而言它是一个非常严肃、正规的API。通过HSSF,你可以用纯Java代码来读取、写入、修改Excel文件。HSSF为读取操作提供了两类API:usermodel和eventusermodel,即“用户模型”和“事件-用户模型”。
[0010]HSSF的基本实现方式:首先Java程序语言调用需要获得HSSF的Workbook对象,然后根据Workbook对象获得Sheet对象,其次利用Sheet对象获得对应的Row与Cell对象,再次Cell对象可以操作Excel某一单元格:“包括添加单元格对应的内容、设置单元格的边线样式、单元格的长度与宽度”等操作,最后通过操作单元格达到操作Excel当页的所有表格的功能。
[0011]HTML (Hypertext Markup Language)是用于描述网页文档的一种标记语言,五彩纷呈的网页都是HTML语言实现的。HTML提供诸如<html>之类的标记,浏览器解释执行为用户展现标记语言的内容,形成了浏览器页面。
[0012]Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。Servlet是位于Web服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servl et的Java虚拟机。

【发明内容】

[0013]应用系统中,在IE浏览器中展现Excel表格内容并提供导出下载是一个普遍功能。系统一般是采取在程序中嵌入ActiveX控件调用xml格式的Excel文档实现报表的展现。而ActiveX控件对于那些安全性要求比较高的系统就会存在问题,ActiveX不安全,究其原因是用户可以直接访问服务器数据。所以基于以上问题,本文利用java调用POI技术在基于模版与标记实现Excel基础上,动态的生成HTML代码,在浏览器中动态的展示表格,为IE中展现Excel表格提供了新的实现方法。同时针对POI操作Excel表格编写代码,如果Excel表格模板一经改变,服务器中的代码〃牵一发动全身〃需要全部重新修改,提出了模板与标记相结合的方式,开发出一种“智能机制”,程序不需要根据具体的模板来构建。这样程序开发人员不需要针对模板的改动修改动辄成千上万的代码,而只是简单的更新上传一下模板,就能达到程序代码与具体业务需求相分离,大大的节省了工作量与开发周期,为项目开发减少了成本。
[0014]为解决上述技术问题,本发明提供的技术方案为一种基于模版与标记实现的Excel显示与导出方法,包括以下步骤:与应用平台调用接口类对接并接收数据封装传入;到应用数据库中查询并获取已经上传的Excel模板;解析模板标记获得每一个标记的行与列的信息保存进位置信息对象;查询应用数据库中存储的模板标记与数据来源对应关系;根据位置信息,标记与数据来源对应关系,对数据进行加工,把数据填充到Excel对应的单元格中,并把Excel暂存到内存中JfExcel提供对外输出。
[0015]以及一种基于模版与标记实现的Excel显示与导出系统,其特征在于,包括以下部分:应用平台,Excel核心处理单元,应用数据库;应用平台,用于与Excel核心处理单元调用接口类对接,并传入数据封装;EXcel核心处理单元,用于与应用平台调用接口类对接,并接收数据封装传入;到应用数据库中查询并获取已经上传的Excel模板;解析模板标记获得每一个标记的行与列的信息保存进位置信息对象;查询应用数据库中存储的模板标记与数据来源对应关系;根据位置信息,标记与数据来源对应关系,对数据进行加工,把数据填充到Excel对应的单元格中,并把Excel暂存到内存中JfExcel提供对外输出;应用数据库,用于存储、接受查询并提供Excel模板和模板标记与数据来源对应关系。
[0016]本发明的有益效果是:用户需求改变修改Excel模板时,不需要重新修改大量的程序位置信息代码,只需要将更新的模板覆盖上传并简单配置关系就可以达到浏览器Html展示以及导出下载功能。
【专利附图】

【附图说明】
[0017]图1为本发明实施例提供的利用POI技术基于模版与标记实现的Excel显示与导出功能系统Excel核心处理流程图;
[0018]图2为本发明实施例提供的Excel转HTML中间处理单元数据流程图
[0019]图3为本发明实施例提供的利用POI技术基于模版与标记实现的Excel显示与导出功能系统基于模板与标记的功能系统数据库Excel模板表结构图;
[0020]图4为本发明实施例提供的利用POI技术基于模版与标记实现的Excel显示与导出功能系统基于模板与标记的功能系统数据库标记与数据对应关系字典表结构图;
[0021]图5为本发明实施例提供的在电子商务系统中的一个具体集成应用,包括:
[0022]图5-1,系统开发或维护人员制作好后的表格模板图;
[0023]图5-2,系统开发或维护人员上传或更新Excel模板操作图;
[0024]图5-3,系统开发或维护人员配置标记与数据来源操作图;
[0025]图5-4,系统开发或维护人员显示位置设定操作图;[0026]图5-5,系统使用用户查询电子商务系统订单页面;
[0027]图5-6,用户选择某一单据查看报表HTML显示页面;
[0028]图5-7,用户点击“导出”按钮,导出的Excel表格页面;
【具体实施方式】
[0029]下面结合附图和实施例对本发明进行详细说明。
[0030]本发明涉及到两种用户角色,
[0031]1.程序开发维护人员、
[0032]2.一般用户。
[0033]1、程序开发维护人员操作包括以下步骤:
[0034]第一步,根据业务具体需求制作Excel表格模板,添加模板标记上传或修改模板。
[0035]第二步,进入Excel模板与类关系配置页面,进行关系建立配置。
[0036]第三步,设置页面调用显示位置。
[0037]2、一般用户操作包括以下步骤:
[0038]第一步,查询对应表格。
[0039]第二步,显示表格数据。
[0040]第三步,下载导出表格数据。
[0041]本发明是靠Excel的智能处理提供基类(ExcelReport)来实现的,该类对外提供了一个调用接口,该类的主要功能能如下:
[0042]1、动态获取Excel模板(模板信息来源与数据库,即程序开发人员操作第一步保存到库中的Excel模板).2、解析Excel模板获得各个标记所对应的单元格的位置信息(行,列信息)并将位置信息与标记内容封装到表格位置信息类中(该部分实现程序与模板相分离,用户更新模板程序代码不需要重新修改,程序的位置信息是动态记录的)。3、解析Excel模板中的所有标签按程序开发人员第二步操作设置的对应关系(Dictionaries),记录各标签对应单元格的数据来源信息。4、根据调用传入的数据信息,标记数据来源信息及单元格标记的位置信息进行动态的填充处理,把具体相应的数据填充到对应的单元格内。
5、将处理后的Excel表格数据提供两种输出方式。①浏览器HTML展示方式,该方式需要调用Excel表格转Html页面内容类(Excel2Html)进行Html的生成②导出Excel表格的方式,通过设置请求响应类型导出Excel文件供用户编辑处理。
[0043]参照图1,图示是本发明利用POI技术基于模版与标记实现的Excel显示与导出功能系统的核心处理单元的流程图。如图所示,首先应用平台调用接口类与Excel核心处理单元进行对接并进行数据封装传入。Excel核心处理单元被调用以后首先会利用查询操作到应用数据库中查询已经上传的Excel模板(开发或维护人员的操作步骤一),获得模板以后进行解析模板标记获得每一个标记的行与列的信息保存进位置信息对象,接下来程序会查询开发或维护人员第二步操作查询已经存入数据库的标记与数据来源对应关系,取得以上信息以后,程序会根据位置信息,标记与数据来源对应关系,对数据进行加工,把数据填充到Excel对应的单元格中并把Excel暂存到内存中,最后程序提供对外输出,输出包括两种形式:形式一,通过Excel转HTML类进行转化,输出HTML语言标记格式。形式二.直接响应用户的请求导出Excel文件到本地。[0044]参照图2,图2是Excel转HTML中间处理单元流程图,浏览器显示的内容其根本是HTML语目,而Excel是由许多单兀格组成的,这就需要一个转化程序将Excel语目转化成为HTML语言标记,该图显示Excel核心模块调用中间转化模块输出HTML到Servlet服务器,最后由Servlet服务响应给浏览器作为输出。
[0045]参照图3,图3是数据库保存Excel模板的表格设计,表格分别记录模板的唯一标识ID (程序查询模板也是以唯一标识为依据)、模板的内容、模板与数据标记关系对应表的id、创建时间等内容。这个表创建好以后,当用户上传模板的时候,服务器会提交模板以数据流的形式将Excel模板存入数据库表中。
[0046]参照图4,图4是数据库保存模板标记与数据源关系的表格设计,表格分别记录关系的唯一标识ID (模板与模板自己的数据对应关系的映射根据此ID记录)、对应关系的内容、模板的id、创建时间等内容。这个表创建好以后,当开发或维护人员配置关系点击保存的时候,服务器会将对应的配置关系存入数据库表中。
[0047]参照图5-1,图5-1是系统开发或维护人员制作的Excel模板图,图中存在如:〃$ {order, price}"这样的标记,该标记的意思是显示订单价格。图5_2是系统人员选择模板进行覆盖上传或者上传模板到系统中,用户单击确定,会触发服务器操作数据库行为,将Excel模版转化为流的形式存入到图1数据库的库表中。图5-3程序开发或维护人员进入页面关系选择配置,配置结束后点击保存按钮,关系信息会存如图2对应的关系表中。图5-4程序开发或维护人员进入Excel报表显示位置设置页面,首先开发或维护人员点击〃请选择显示内容〃按钮,弹出展示内容选择页面,在页面中选择已经设置好的Excel模板,这里选择采购合同,单击保存退出设置。图5-5这里是一般用户操作页面,以用户进入电子商务系统进行查询操作为例,用户点击查询按钮,显出所有的订单列表。图5-6—般用户点击“订单头信息”弹出订单头详细信息窗口,用户点击“采购合同”标签,可以看见之前程序开发或维护人员设置的Excel报表已经在IE中展现,并且在标签的位置显示出对应的数据。图5-7 —般用户点击“订单头信息”弹出订单头详细信息窗口,用户点击“采购合同”标签,可以看见之前程序开发或维护人员设置的Excel报表已经在IE中展现,并且在标签的位置显示出对应的数据
[0048]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
【权利要求】
1.一种基于模版与标记实现的Excel显示与导出方法,其特征在于,包括以下步骤: 与应用平台调用接口类对接并接收数据封装传入; 到应用数据 库中查询并获取已经上传的Excel模板; 解析模板标记获得每一个标记的行与列的信息保存进位置信息对象; 查询应用数据库中存储的模板标记与数据来源对应关系; 根据位置信息,标记与数据来源对应关系,对数据进行加工,把数据填充到Excel对应的单元格中,并把Excel暂存到内存中; 将Excel提供对外输出。
2.根据权利要求1所述的一种基于模版与标记实现的Excel显示与导出方法,其特征在于,所述将Excel提供对外输出包括: 方式一,将Excel转化为HTML,输出HTML标记语言格式;或者 方式二,直接响应用户的请求导出Excel文件到本地。
3.根据权利要求2所述的一种基于模版与标记实现的Excel显示与导出方法,其特征在于,所述方式一包括: 获取内存中的Excel数据; 将Excel数据转化成为HTML标记语言; 输出HTML标记语言。
4.根据权利要求1所述的一种基于模版与标记实现的Excel显示与导出方法,其特征在于,所述方法还包括: 应用数据库保存Excel模板信息,包括模板的唯一标识ID、模板的内容、模板与数据标记关系对应表的ID、创建时间中的至少一种; 应用数据库保存模板标记与数据源的对应关系,包括对应关系的唯一标识ID、对应关系的内容、模板的ID、创建时间中的至少一种。
5.根据权利要求4所述的一种基于模版与标记实现的Excel显示与导出方法,其特征在于,所述方法包括: 应用数据库中保存的Excel模板信息和模板标记与数据源的对应关系可以上传、修改或删除。
6.一种基于模版与标记实现的Excel显示与导出系统,其特征在于,包括以下部分: 应用平台,Excel核心处理单元,应用数据库; 应用平台,用于与Excel核心处理单元调用接口类对接,并传入数据封装; Excel核心处理单元,用于与应用平台调用接口类对接,并接收数据封装传入;到应用数据库中查询并获取已经上传的Excel模板;解析模板标记获得每一个标记的行与列的信息保存进位置信息对象;查询应用数据库中存储的模板标记与数据来源对应关系;根据位置信息,标记与数据来源对应关系,对数据进行加工,把数据填充到Excel对应的单元格中,并把Excel暂存到内存中JfExcel提供对外输出; 应用数据库,用于存储、接受查询并提供Exce I模板和模板标记与数据来源对应关系。
7.根据权利要求6所述的一种基于模版与标记实现的Excel显示与导出系统,其特征在于,所述将Excel提供对外输出包括: 方式一,将Excel转化为HTML,输出HTML标记语言格式;或者方式二,直接响应用户的请求导出Excel文件到本地。
8.根据权利要求6所述的一种基于模版与标记实现的Excel显示与导出系统,其特征在于,所述方式一包括: Excel转HTML中间处理单元,用于从Excel核心处理单元获取内存中的Excel数据;将Excel数据转化成为HTML标记语言;输出HTML标记语言。
9.根据权利要求6所述的一种基于模版与标记实现的Excel显示与导出系统,其特征在于,所述系统还包括: 应用数据库保存Excel模板信息, 包括,模板的唯一标识ID、模板的内容、模板与数据标记关系对应表的ID、创建时间的至少一种; 应用数据库保存模板标记与数据源的对应关系,包括对应关系的唯一标识ID、对应关系的内容、模板的ID、创建时间的至少一种。
10.根据权利要求6所述的一种基于模版与标记实现的Excel显示与导出系统,其特征在于,所述系统还包括: 应用数据库中保存的Excel模板信息和模板标记与数据源的对应关系可以上传、修改或删除。
【文档编号】G06F17/24GK103914438SQ201210592875
【公开日】2014年7月9日 申请日期:2012年12月30日 优先权日:2012年12月30日
【发明者】曾宪伟, 林凉 申请人:航天信息股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1