数据统计-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文件下载到客户端浏览器并关闭资源



最终效果:




