基于excel文件格式的报表生成器_第1页
基于excel文件格式的报表生成器_第2页
基于excel文件格式的报表生成器_第3页
基于excel文件格式的报表生成器_第4页
基于excel文件格式的报表生成器_第5页
已阅读5页,还剩12页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于Excel文件格式的报表生成器传统程序的做法开发一个下载Excel文件格式的报表过程:

1.需求方会发一个文件下载样式的Excel文件,这个文件决定了我们程序中生成Excel文件的最终效果。

2.然后程序员需要定义一个Action,用来取得参数和调用相应业务类来组合生成报表而需要的相应数据。

3.还需要定义一个生成Excel文件的类。该类根据数,并动态生成Excel文件。传统程序做法的不足1.程序员需熟悉Excel文件读写机制及相关API的使用。2.程序员必须在程序中控制生成Excel文件的一切细节:

如:单元格的生成,图片的插入,合并单元格,控制单元格字体大小,设置单元格的格式等等这样一些很细节的东西。但这样的代码一旦Excel文件格式需要改动,其代码就必须修改。3.数据的生成和写Excel文件的过程混杂在一起,不利于程序的维护。代码的可读性和重用性都比较差。Excel文件格式报表生成器的做法开发一个下载Excel文件格式报表的主要过程:

1.需求方会发一个文件下载样式的Excel文件,这个文件决定了我们程序中生成Excel文件的最终效果。

2.我们根据这个Excel文件来定义一个Excel文件格式的模板。

3.在配置文件中配置一个报表,并配置该报表对应的数据源信息以及数据源参数等信息。

4.在页面上调用report,并传入相应的报表名称和相应参数。一个简单列表式报表的开发过程配置报表数据源信息:

配置报表:

一个简单列表式报表的开发过程定义一个Excel格式的报表文件模板:请求URL:

report?report=productReport&dsPductCode=8S118-14-52变速器总成【01.8S118.0014--0】一个简单列表式报表的开发过程报表生成结果:

Excel文件格式报表生成器的优点在该报表生成器中,把报表生成过程和报表数据的生成过程分离开来,使得程序员无需去关心Excel文件的读写和生成等细节,而只需组装自己的数据源,其它的一切工作都可以交由该工具来完成,其好处是:

1.程序员无需去熟悉Excel文件读写等操作的API,以及具体如何去生成相应Excel文件格式等细节。

2.报表的模板的设计过程是一个所见即所得的过程,模板定义成什么样式,其生成得报表也是什么样式。

3.方便维护,当报表文件格式发生变化,或者是删改某些信息,可以尽量避免影响到程序得修改,而只需修改报表模板就可以了。Excel文件格式报表生成器的灵活性数据源的可定制性:

在该报表生成器中,用户可以定制自己的数据源实现。

例如:我们要利用现有的数据库框架来实现数据源数据的自动检索,可以通过重载DBDataSource类,并在该类中实现相应查询数据的接口,在接口的实现中可以调用框架库的API来实现数据的检索和封装。这样生成器每次生成database类型的数据源时都会调用用户定制的数据源实现来检索数据。

Excel文件格式报表生成器的灵活性可嵌入用户的报表数据处理对象:

在报表定义配置文件中,程序员可以为自己特定的报表定义不同的处理对象,生成器框架会在适当的时候调用用户嵌入的报表数据处理对象,来执行一些如复杂的数据源的生成等工作。

如下图:

Excel文件格式报表生成器的灵活性用户可以在嵌入的数据处理对象中做什么?

1.修改已有的数据源或生成新的数据源

用户可以更改生成器已经检索出来的数据源中的数据记录,甚至插入新的数据源。这对于一些复杂数据的生成很有用。

2.可以插入相应的监听器:

A.数据查询监听器:一旦你在某个数据源中设置了这样一个监听器,每当生成器框架调用数据检索数据时都会调用该监听器的实现,在该监听器中用户可以决定相数据源中插入什么样的数据集。

B.数据源字段监听器:该监听器主要是用来用户控制生成器在调用数据源对象以取得其某个字段的当前值时,用户可以修改该字段的返回值。比如可以检查当该字段值为负就不返回数据,或是该字段的数据可能需要从数据库中重新检索以便取得其真正想得到的值等等。Excel文件格式报表生成器的灵活性控制数据的输出格式

ExcelReport的格式化输出最终是通过Excel本身来实现的。换句话说,在Excel报表文件的生成过程中,工具本身并不格式化数据,而是将模板定义的格式化设置信息写入到生成的单元格中,这样该单元格在Excel中显示时会被Excel格式化输出并显示。因此在ExcelReport中我们可以使用Excel所支持的丰富的格式化功能。

比如,如果我们需要格式化输出一个日期型字段,那么我们一定要确保该字段在数据源中必须以Date类型的数据保存。如果数据不是以Data类型保存在数据源中呢?比如在某些表中日期被检索出来可能就是一个字符串。对于这种情况,如果你不对数据源进一步处理,你是无法在生成的报表中看到格式化的输出效果

Excel文件格式报表生成器的灵活性控制数据的输出格式

的。对于进一步如何对该字段进行处理?在ExcelReport中有两种方式:

第一我们可以在数据源定义时指定某个字段的类型,这样报表工具会自

动将数据源中的值转换用户定义的类型。

第二我们可以在数据源中对该字段插入一个字段监听器,这样在报表工具读取该字段值时可以自己去手动将该值转换成Date类型并返回转换后的值,这样报表工具就会用我们转换过的值来生成报表。(这种情况对于静态类型的数据源或某些报表工具本身不支持的类型转换的情况下较常用)

Excel文件格式报表生成器的灵活性嵌入Excel函数

在报表制作过程当中我们经常会对一些输出的数据进行一些统计计算,比如求和求平均值等常见的统计函数等等,甚至可以这么说,一个报表工具完善与否跟它所支持的统计函数及相关脚本的功能强大与否有着很大的关系。在ExcelReport中工具本身并不提供任何报表统计函数和脚本技术,它只是利用Excel的丰富的函数库来实现报表统计功能。

来看一个例子:$V{SUM($F{ds.field1}*$F{ds.field2})}

这个例子的意思是,将ds数据源对应的字段值field1和field2通过Excel得sum函数来做乘法运算。

报表工具最终生成得单元格可能是:

Excel文件格式报表生成器的灵活性嵌入Excel函数

1.‘=SUM(B3*C3)’

生成该语句是因为最近一个$F{ds.field1}和$F{ds.field2}的值在B3和C3位置输出了值。所以系统就通过引用这两个单元格来实现对这两个字段值进行计算的效果。 2.‘=SUM(12*20)’生成该语句是因为报表工具在模板文件中无法找到$F{ds.field1}和$F{ds.field2}的模板元素定义,这样系统就会直接去ds数据源中取得field1和field2对应的当前值,并用该值来生成相

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论