Excel交互式报表怎么做

   开发让员工在各自的电脑终端查询公司服务器上的数据报表的交互查询系统,最枯燥重复和占用时间的工作是通过JSP/ASP/PHP代码写出基于数据库的展示、查询和录入的网页,这样不仅开发效率不高,而且维护工作量也很大。此次,就借助FineReport V8.0,完成利用下拉列表框选择地区,根据所选地区展示该地区各店的水果销售情况的数据报表及图表(图1)。


  1. 数据先行

  任何报表、图表都离不开数据,这里利用了Excel表中的已有数据。首先,将存有数据的Excel表格复制到FineReport V8.0安装目录下的WebReportWEB-INFreportlets文件夹中。运行FineReport V8.0,选择“服务器→服务器数据集”菜单,在弹出的窗口中点击绿色“+”按钮,选择“文件数据集”,双击数据集,名称设置为“店面销售统计”,文件类型选择Excel,文件地址选择reportlets文件夹中所需要的那个Excel文件,勾选“第一行包含列标题”,点击“预览”按钮,若没有问题,确定即可(图2)。


  2. 报表设计

  数据连接设置好后,就该进行报表的设计了。在报表编辑区,选择A2:B2单元格进行合并,右击该单元格,选择“单元格元素→插入斜线”菜单,在弹出的斜线编辑对话框的文本编辑框中写入在斜线当中要加入的内容:水果|店面|地区,通过添加空格来调整文字的位置;在C1:H1列输入各水果名称并设置好样式;在左侧的数据集管理面板选择“服务器数据集”,将添加的“店面销售统计”展开,将相应的字段名称拖动到A2:H2单元格中;在B3单元格中输入“平均”;选中C3单元格,点击右侧插入内容处的“+”按钮,选择“插入公式”,在弹出的公式定义对话框函数名处选择“AVERAGE”,在公式编辑处输入C2,确定后,就会在C2处显示出“=AVERAGE(C2)”,右击拖动填充到H2;选中A1:H2,利用工具栏为这些单元格加上边框(图3)。


  3. 图表添加

  报表设计完成后,点击“插入→悬浮元素→插入图表”菜单,在弹出窗口中的图表类型中选择“柱形图”,在右侧的图表属性窗口,点击“类型”选项卡,选好需要的类型布局;点击“数据”选项卡,数据来源处选择“单元格数据”,分类轴处输入“=B2”,点击系列名处的“+”,系列名处输入“=C1:H1”,值处输入“=C2:H2”;点击“样式”选项卡,在其下的“标题”子选项卡中输入标题并设置好格式,在“标签”子选项卡中勾选“标签”及其下的“值”;点击“特效”选项卡,在其“交互属性”子选项卡中勾选动态展示、系列拖拽、图表缩放等(图4)。


  4. 添加交互控件

  报表、图表设计完成后,要想使报表具有交互性,还要添加交互控件。在参数面板区点击笔状按钮,将控件面板中的标签控件、下拉框控件及预定义控件中的查询控件拖放到其中。选中标签控件,在右侧的属性面板中,设置标签的控件值为“地区”,并设置好字体、字号等;选中下拉框控件,在属性面板点击数据字典处的按钮,在弹出的对话框类型设置处选择“数据查询”,数据集处选择“店面销售统计”,实际值处选择“地区”,显示值处选择“地区”,这样就实现了将地区字段值加入到下拉列表框中(图5)。


  点击笔状按钮,退出参数面板。在报表编辑区选中A2单元格,在右侧面板点击“过滤”选项卡,在弹出窗口的可选列处选择“地区”,操作符处选择“等于”,点击其右侧按钮选择“参数”后输入“$comboBox0”(comboBox0为下拉列表框控件名),点击“增加”按钮后确定,这样就实现了当列表框中选定地区后点击“查询”按钮显示查询内容(图6)。


  最后,将文件保存到安装目录下的WebReportWEB-INFreportlets文件夹中,命名为WorkBook1.cpt,预览一下,没问题即可。

  5. 文件发布与访问

  报表WorkBook1.cpt要达到能被访问的程度,需要将本机配置为服务器进行发布。安装Tomcat服务器程序,将FineReport_8.0安装目录下的WebReport文件拷贝到%Tomcat_HOME% webapps下,启动tomcat即可发布成功。之后,建立网址“http://ip:端口/ WebReport/ReportServer?reportlet=123%2FWorkBook4.cpt&op=view”的快捷方式,将此快捷方式发到每个员工的桌面上,就能一键点击访问查询了。

  小提示:

  tomcat的默认端口为8080,如果该端口被占用,tomcat将无法启动。这时就需要重新配置端口,只需修改%tomcat_home%confsever.xml即可。

时间: 2024-09-17 04:37:59

Excel交互式报表怎么做的相关文章

类似EXCEL的报表类库(更新)

我在 VCKBASE <在线杂志>第二十四期中有一篇文章"类似EXCEL的报表类库".这篇文章中的例子程序已经有最新版了,界面截图和文档内容也已更新.最新程序请从本文上方的链接处下载. 20030907更新内容: 1)开始在程序里支持图表显示 2)修改了在打印部分的输出线条偶尔有重叠现象 3)支持了在单元格里面放入下拉式列表 20030807更新内容: 1)这一版解决了打印预览和合并单元格在分页打印时候的打印内容错误问题. 2)解决了在WIN9X环境下的网格线条显示和打印问

javascript操作excel生成报表全攻略

 这篇文章主要介绍了如何使用javascript操作excel生成报表,需要的朋友可以参考下 最近做一个项目,用到了javascript操纵excel以生成报表,下面是标有详细注解的实例  代码如下: <html> <head> <script language="javascript" type="text/javascript"> </script><script language="javascr

列表-水昌报表能做这样的报表吗?用于对比数据

问题描述 水昌报表能做这样的报表吗?用于对比数据 列表-水昌报表能做这样的报表吗?用于对比数据-财务数据同期对比报表"> 左边是一个报表的内容 右边是另一个报表的内容 相个内容无任何关系. 比如左边是欠款列表,可能欠了6次 右边是还款列表可能还了3次 也有可能欠了3次还了6次,最要命的是一详细资料行,如何一行显示,两个不同的数据? 解决方案 可以分栏,然后左右各显示一个表

使用C#和Excel进行报表开发(4)

在用Excel作报表的时候,可能会碰到分页的情况,这样就要分成多个Sheet显示,如果要在每页都保留表头,就需要将第一页作为模板设计的表头部分拷贝到其他的Sheet上,这时就要用用到Excel中的单元格拷贝. 下面的代码说明如何一个Sheet上的选定内容拷贝到另一个Sheet上: ThisApplication = new Excel.Application(); ThisWorkbook = ThisApplication.Workbooks.Open("z:\\Book1.xls"

使用C#和Excel进行报表开发(5)

在用Excel作报表的时候,可能需要操作单元格的边框和填充颜色和纹理等操作,下面的代码说明如何设置选中的单元格的填充纹理和边框. try { ThisApplication = new Excel.Application(); ThisWorkbook = ThisApplication.Workbooks.Open("z:\\Book1.xls", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing

使用C#和Excel进行报表开发(3)

有的web项目选用Excel作为报表方案,在服务器端生成Excel文件,然后传送到客户端,由客户端进行打印.在国内的环境下,相对PDF方式,Excel的安装率应该比pdf阅读器的安装率要高,同时,微软也为C#操作Excel提供了完备的接口,虽然ZedGraph和其他的商业报表工具生成的统计图也很好,但是人家微软毕竟是大品牌,值得信赖. 本文介绍使用C#调用Excel来生成统计图(Chart)的以及Chart图中各部分控制的一些方法. 在上一篇使用C#和Excel进行报表开发(二)-操作统计图(C

Delphi控制Excel生成报表

摘 要:Excel是当前最流行的数据报表制作工具.本文介绍如何使用Delphi来控制Excel完成数据库与报表之间的数据交换,讨论了报表制作工程中的一些细节性问题. 1 引言 数据报表作为企事业单位上报和下达的重要信息载体,随着信息化建设的不断推进,在实际的工作中得到了前所未有的应用.因此,数据报表已经成为管理信息系统中重要的一项功能,并且,由于数据的多样性和统计信息的增加,数据报表的系统实现变得越来越复杂. Delphi是一个高效的可视化数据库管理信息系统开发工具,.但是Delphi开发环境中

birt报表工具做考勤表

问题描述 birt报表工具做考勤表 用birt报表工具可以做考勤表吗?考勤表会有合并单元格的情况,做多个人的考勤.如有几天请假就直接合并单元格,然后显示请假.能实现吗 解决方案 可以的,这个需要用Vb程序编程

java-Java Excel模版导出怎么做?

问题描述 Java Excel模版导出怎么做? RT:有一个5行的表头模版,现需要将数据导出到该模版.这个如何做? 答非所问 补充:我是有一个Excel模板(带样式的)现需要将数据追加到模板Excel文件里 解决方案 List list = exampleService.queryForList(); response.reset();// 清空输出流 response.setHeader(""Content-disposition""attachment; fil