欢迎光临
我们一直在努力

黑马苍穹外卖笔记day12

数据统计-EXCEL报表

工作台:

需求分析:工作台是系统运营的数据看板,并提供快捷操作入口,可以有效提高商家的工作效率。工作台展示的数据:

  • 今日数据
  • 订单管理
  • 菜品总览
  • 套餐总览
  • 订单信息

名词解释:

  • 营业额:已完成订单的总金额
  • 有效订单:已完成订单的数量
  • 订单完成率:有效订单数/总订单数*100%
  • 平均客单价:营业额/有效订单数
  • 新增用户:新增用户的数量

接口设计:

  • 今日数据接口
  • 订单管理接口
  • 菜品总览接口
  • 套餐总览接口
  • 订单搜索(已完成)
  • 各个状态的订单数量统计(已完成)

代码已经从资料中导入

Apache POI:

Apache POI是一个处理Office各种文件格式的开源项目,简单来说,我们可以使用POI在Java程序中对各种文件进行读写操作。一般情况下,POI都是用于操作Excel文件

应用场景:

  • 银行网银系统导出交易明细
  • 各种业务系统导出Excel报掉
  • 批量导入业务数据

示例程序:

写操作:

主要有XSSFWorkbook,XSSFSheet,XSSFRow等类,并且对一个行对象,使用createCell()方法创建一个单元格,参数为列号,并使用setCellValue()方法指定单元格内容,最后通过文件IO流将XSSFWorkbook类的对象写入到文件中

读操作:

XSSFWorkbook类的其中一个构造器可以使用File对象作为参数,即从一个File中读取workbook,然后可以调用各种get方法获取到sheet,row和cell,并获取到每一个单元格内的值

导出运营数据Excel报表:

业务规则:

  • 导出Excel形式的报表文件
  • 导出最近30天的运营数据

实现步骤:

  • 设计Excel模版文件
  • 查询近30天的运营数据
  • 将查询到的运营数据写入模板文件
  • 通过输出流将Excel文件下载到客户端浏览器

代码开发:

Controller层:admin/ReportController下的export()方法,由于最后要通过输出流将Excel文件下载到客户端浏览器,则需要传入一个HttpServletResponse类型的参数与浏览器进行通信

Service层:ReportService接口的ReportServiceImpl实现类下的exportBusinessData()方法,在前面导入的工具台代码的workspaceService类中,可以通过传入时间来获取最近30天的运营数据,获取到数据后,需要利用反射动态获取类加载器,加载模板文件,并包装成一个InputStream,并基于这个模板文件创建一个新的Excel文件,并在下面的详细数据中,通过遍历Date来获取到每天的销售数据;最后通过输出流将Excel文件下载到客户端浏览器并关闭资源

最终效果:

赞(0)
未经允许不得转载:171主机测评 » 黑马苍穹外卖笔记day12
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址