黑马苍穹外卖学习Day12

这篇具有很好参考价值的文章主要介绍了黑马苍穹外卖学习Day12。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

工作台

需求分析

黑马苍穹外卖学习Day12,Java,学习,java,spring boot,apache,mybatis
黑马苍穹外卖学习Day12,Java,学习,java,spring boot,apache,mybatis
黑马苍穹外卖学习Day12,Java,学习,java,spring boot,apache,mybatis
黑马苍穹外卖学习Day12,Java,学习,java,spring boot,apache,mybatis
黑马苍穹外卖学习Day12,Java,学习,java,spring boot,apache,mybatis

Apache POI

介绍

黑马苍穹外卖学习Day12,Java,学习,java,spring boot,apache,mybatis
黑马苍穹外卖学习Day12,Java,学习,java,spring boot,apache,mybatis

入门案例

package com.sky.test;

import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.File;
import java.io.FileOutputStream;

/**
 * 使用POI操作excel文件
 */
public class POITest {
    /**
     * 通过POI创建excel文件并写入文件内容
     */
    public static void write() throws Exception{
        //在内存中创建excel文件
        XSSFWorkbook excel = new XSSFWorkbook();
        //在excel文件中创建sheet页
        XSSFSheet sheet = excel.createSheet("info");
        //在sheet中创建行对象  rownum编号是从0开始的
        XSSFRow row = sheet.createRow(1);
        //在行上面创建单元格 并写入文件内容
        row.createCell(1).setCellValue("姓名");
        //这一句和上一句相当于在第二行的第二格与第三格 写入信息
        row.createCell(2).setCellValue("城市");
        //创建一个新行
        row = sheet.createRow(2);
        row.createCell(1).setCellValue("张三");
        row.createCell(2).setCellValue("北京");
        row = sheet.createRow(3);
        row.createCell(1).setCellValue("李四");
        row.createCell(2).setCellValue("南京");
        //通过输出流将内存中的excel文件写出到磁盘
        FileOutputStream out = new FileOutputStream(new File("D:\\info.xlsx"));
        excel.write(out);
        //关闭资源
        out.close();
        excel.close();

    }

    public static void main(String[] args) throws Exception{
            write();

    }
}

结果
黑马苍穹外卖学习Day12,Java,学习,java,spring boot,apache,mybatis

    public static void  read() throws Exception{
        FileInputStream inputStream = new FileInputStream(new File("D:\\info.xlsx"));
        //读取磁盘上已存放的excel文件
        XSSFWorkbook excel = new XSSFWorkbook(inputStream);
        //读取excel文件中的第一个sheet页
        XSSFSheet sheet = excel.getSheet("info");
        //获取最后一行的行号
        int lastRowNum = sheet.getLastRowNum();
        for (int i = 1;i <= lastRowNum; i++){
            //获得某一行
            XSSFRow row = sheet.getRow(i);
            //获得单元格对象
            String cellValue1 = row.getCell(1).getStringCellValue();
            String cellValue2 = row.getCell(2).getStringCellValue();
            System.out.println(cellValue1 + "   " + cellValue2);
        }
        //关闭资源
        excel.close();
        inputStream.close();
            public static void main(String[] args) throws Exception{
//            write();
            read();
    }
    }

黑马苍穹外卖学习Day12,Java,学习,java,spring boot,apache,mybatis

导出运营数据Excel报表

需求分析

黑马苍穹外卖学习Day12,Java,学习,java,spring boot,apache,mybatis
黑马苍穹外卖学习Day12,Java,学习,java,spring boot,apache,mybatis
黑马苍穹外卖学习Day12,Java,学习,java,spring boot,apache,mybatis

代码开发

黑马苍穹外卖学习Day12,Java,学习,java,spring boot,apache,mybatis
Controller层

    /**
     * 导出运营数据报表
     * @param response
     */
    @GetMapping("/export")
    @ApiOperation("导出运营数据报表")
    public void export(HttpServletResponse response){
        reportService.exportBusinessData(response);
    }

Service实现类文章来源地址https://www.toymoban.com/news/detail-823174.html

   /**
     * 导出运营数据报表
     * @param response
     */
    @Override
    public void exportBusinessData(HttpServletResponse response) {
        //1、查询数据库获得营业数据--查询最近30天数据
        LocalDate dateBegin = LocalDate.now().minusDays(30);
        LocalDate dateEnd = LocalDate.now().minusDays(1);
        //查询概览数据
        BusinessDataVO businessDataVO = workspaceService.getBusinessData(LocalDateTime.of(dateBegin, LocalTime.MIN), LocalDateTime.of(dateEnd, LocalTime.MAX));

        //2、通过POI将数据写入到Excel文件中
        InputStream in = this.getClass().getClassLoader().getResourceAsStream("template/运营数据报表模板.xlsx");

        try {
            //基于已有模板文件创建一个新的excel文件
            XSSFWorkbook excel = new XSSFWorkbook(in);
            //填充数据--时间
            XSSFSheet sheet1 = excel.getSheet("sheet1");
            sheet1.getRow(1).getCell(1).setCellValue("时间:" + dateBegin + "至" + dateEnd);
            //获得第四行
            sheet1.getRow(3).getCell(2).setCellValue(businessDataVO.getTurnover());
            sheet1.getRow(3).getCell(4).setCellValue(businessDataVO.getOrderCompletionRate());
            sheet1.getRow(3).getCell(6).setCellValue(businessDataVO.getNewUsers());
            //获得第五行
            XSSFRow row = sheet1.getRow(4);
            row.getCell(2).setCellValue(businessDataVO.getValidOrderCount());
            row.getCell(4).setCellValue(businessDataVO.getUnitPrice());


            //填充明细数据
            for (int i = 0; i <30 ; i++) {
                LocalDate date = dateBegin.plusDays(i);
                //查询某一天的营业数据
                BusinessDataVO businessData = workspaceService.getBusinessData(LocalDateTime.of(date, LocalTime.MIN), LocalDateTime.of(date, LocalTime.MAX));
                //获得某一行
                row = sheet1.getRow(7 + i);
                row.getCell(1).setCellValue(date.toString());
                row.getCell(2).setCellValue(businessData.getTurnover());
                row.getCell(3).setCellValue(businessData.getValidOrderCount());
                row.getCell(4).setCellValue(businessData.getOrderCompletionRate());
                row.getCell(5).setCellValue(businessData.getUnitPrice());
                row.getCell(6).setCellValue(businessData.getNewUsers());
            }
            //3、通过输出流将excel文件下载到客户端浏览器
            ServletOutputStream out = response.getOutputStream();
            excel.write(out);
            //关闭资源
            out.close();
            excel.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

到了这里,关于黑马苍穹外卖学习Day12的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 苍穹外卖day12 (Apache POI) 数据统计-Excel报表

    工作台用于展示各项运营数据,在图形报表中很多方法都已实现,这部分的业务逻辑也差不多,只是返回的数据类型不一样。 POI用于操作 Excel 文件,可以对Excel文件进行读写操作 导出运营数据报表首先就是查询近30天的运营数据,然后通过POI将查询到的运营数据写入模板文件

    2024年04月24日
    浏览(38)
  • 苍穹外卖 Spring Task 来单提醒 催单Apache ECharts day10~11

    Spring Task 订单状态定时处理 WebSocket 来单提醒 客户催单 功能实现: 订单状态定时处理 、 来单提醒 和 客户催单 订单状态定时处理: 来单提醒: 客户催单: 1.1 介绍 Spring Task 是Spring框架提供的 任务调度工具 ,可以按照约定的时间自动执行某个代码逻辑。 定位: 定时任务框

    2024年02月14日
    浏览(42)
  • itheima苍穹外卖项目学习笔记--Day9: 订单模块

    (1). 查询历史订单 在OrderController中,创建查询方法 在OrderServiceImpl中,创建分页查询方法,及其父类接口 在OrderMapper中,添加查询方法,并在映射文件中写入动态SQL语句 在OrderDetailMapper中,实现根据订单id查询订单明细 (2). 查询订单详细 在OrderController中,创建查询订单详细方

    2024年02月16日
    浏览(65)
  • 苍穹外卖day10——订单状态定时处理(Spring Task)、来单提醒和客户催单(WebSocket)

       对于超时没处理的需要定时程序处理。基于SpringTask实现。 来单提醒和客户催单。基于WebSocket实现。     周几通常不能和日一起指定。   cron表达式在线生成器 在线Cron表达式生成器  创建定时任务类     新建一个task包中一个类如下 在OrderMapper中 运行测试无误。     导

    2024年02月14日
    浏览(46)
  • itheima苍穹外卖项目学习笔记--Day7:缓存商品 / 购物车

    通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: 每个分类下的菜品保存一份缓存数据 数据库中菜品数据有变更时清理缓存数据 修改用户端接口 DishController 的 list 方法,加入缓存处理逻辑 修改管理端接口 DishController 的相关方法,加入清理缓存的逻辑,需要

    2024年02月16日
    浏览(46)
  • itheima苍穹外卖项目学习笔记--Day1:项目介绍与开发环境搭建

    (1). 前端环境搭建 前端工程基于 nginx 运行 启动nginx:双击 nginx.exe 即可启动 nginx 服务,访问端口号为 80 (2). 后端环境搭建 后端工程基于 maven 进行项目构建,并且进行分模块开发 (3). 前后端联调 修改数据库中明文密码,改为MD5加密后的密文 修改Java代码,前端提交的密码进行

    2024年02月15日
    浏览(36)
  • 【黑马苍穹外卖】个人小程序模拟实现微信支付

    1.  在个人学习的特殊情况的局限下,没有办法实现真正的微信支付功能! 2. 微信小程序代码   ① 在项目pay包下的pay.js文件下,将原来的 支付详情 进行替换。 3. java需要修改的后台代码    ①  在这个API中可以使用反回类型的builder进行属性值的赋值 (这里面展示的是谁便

    2024年04月25日
    浏览(36)
  • 如何顺利打开黑马苍穹外卖前端页面?/前端环境搭建步骤

    处理了一个早上加下午的bug 接下来来详细记录一下 若之前有安装过npm和vscode的,避免发生版本冲突情况的,可以考虑全部删掉,再重新安装, 卸载方法如下: 如何全方位卸载Node.js?a later version of node.js is already installed. Setup will now exit.ERROR-CSDN博客 我的例子:我之前安装的是

    2024年04月15日
    浏览(71)
  • 苍穹外卖-day10:Spring Task、订单状态定时处理、来单提醒(WebSocket的应用)、客户催单(WebSocket的应用)

    Spring Task 订单状态定时处理 WebSocket 来单提醒 客户催单 功能实现: 订单状态定时处理 、 来单提醒 和 客户催单 订单状态定时处理: 来单提醒: 客户催单: 1.1 介绍 Spring Task 是Spring框架提供的任务调度工具,可以按照约定的时间 自动执行 某个代码逻辑。 定位 :定时任务框

    2024年04月28日
    浏览(42)
  • itheima苍穹外卖项目学习笔记--Day10: 订单状态定时处理/来单提醒和客户催单

    Spring Task 是Spring框架提供的任务调度工具,可以按照约定的时间自动执行某个代码逻辑。 定位:定时任务框架 作用:定时自动执行某段Java代码 cron表达式其实就是一个字符串,通过cron表达式可以定义任务触发的时间构成规则: 分为6或7个域,由空格分隔开, 每个域代表一个

    2024年02月17日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包