国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

黑馬蒼穹外賣學習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創(chuàng)建excel文件并寫入文件內(nèi)容
     */
    public static void write() throws Exception{
        //在內(nèi)存中創(chuàng)建excel文件
        XSSFWorkbook excel = new XSSFWorkbook();
        //在excel文件中創(chuàng)建sheet頁
        XSSFSheet sheet = excel.createSheet("info");
        //在sheet中創(chuàng)建行對象  rownum編號是從0開始的
        XSSFRow row = sheet.createRow(1);
        //在行上面創(chuàng)建單元格 并寫入文件內(nèi)容
        row.createCell(1).setCellValue("姓名");
        //這一句和上一句相當于在第二行的第二格與第三格 寫入信息
        row.createCell(2).setCellValue("城市");
        //創(chuàng)建一個新行
        row = sheet.createRow(2);
        row.createCell(1).setCellValue("張三");
        row.createCell(2).setCellValue("北京");
        row = sheet.createRow(3);
        row.createCell(1).setCellValue("李四");
        row.createCell(2).setCellValue("南京");
        //通過輸出流將內(nèi)存中的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();

    }
}

結(jié)果
黑馬蒼穹外賣學習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

導出運營數(shù)據(jù)Excel報表

需求分析

黑馬蒼穹外賣學習Day12,Java,學習,java,spring boot,apache,mybatis
黑馬蒼穹外賣學習Day12,Java,學習,java,spring boot,apache,mybatis
黑馬蒼穹外賣學習Day12,Java,學習,java,spring boot,apache,mybatis

代碼開發(fā)

黑馬蒼穹外賣學習Day12,Java,學習,java,spring boot,apache,mybatis
Controller層

    /**
     * 導出運營數(shù)據(jù)報表
     * @param response
     */
    @GetMapping("/export")
    @ApiOperation("導出運營數(shù)據(jù)報表")
    public void export(HttpServletResponse response){
        reportService.exportBusinessData(response);
    }

Service實現(xiàn)類文章來源地址http://www.zghlxwxcb.cn/news/detail-823174.html

   /**
     * 導出運營數(shù)據(jù)報表
     * @param response
     */
    @Override
    public void exportBusinessData(HttpServletResponse response) {
        //1、查詢數(shù)據(jù)庫獲得營業(yè)數(shù)據(jù)--查詢最近30天數(shù)據(jù)
        LocalDate dateBegin = LocalDate.now().minusDays(30);
        LocalDate dateEnd = LocalDate.now().minusDays(1);
        //查詢概覽數(shù)據(jù)
        BusinessDataVO businessDataVO = workspaceService.getBusinessData(LocalDateTime.of(dateBegin, LocalTime.MIN), LocalDateTime.of(dateEnd, LocalTime.MAX));

        //2、通過POI將數(shù)據(jù)寫入到Excel文件中
        InputStream in = this.getClass().getClassLoader().getResourceAsStream("template/運營數(shù)據(jù)報表模板.xlsx");

        try {
            //基于已有模板文件創(chuàng)建一個新的excel文件
            XSSFWorkbook excel = new XSSFWorkbook(in);
            //填充數(shù)據(jù)--時間
            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());


            //填充明細數(shù)據(jù)
            for (int i = 0; i <30 ; i++) {
                LocalDate date = dateBegin.plusDays(i);
                //查詢某一天的營業(yè)數(shù)據(jù)
                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的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 蒼穹外賣day12 (Apache POI) 數(shù)據(jù)統(tǒng)計-Excel報表

    蒼穹外賣day12 (Apache POI) 數(shù)據(jù)統(tǒng)計-Excel報表

    工作臺用于展示各項運營數(shù)據(jù),在圖形報表中很多方法都已實現(xiàn),這部分的業(yè)務邏輯也差不多,只是返回的數(shù)據(jù)類型不一樣。 POI用于操作 Excel 文件,可以對Excel文件進行讀寫操作 導出運營數(shù)據(jù)報表首先就是查詢近30天的運營數(shù)據(jù),然后通過POI將查詢到的運營數(shù)據(jù)寫入模板文件

    2024年04月24日
    瀏覽(45)
  • 蒼穹外賣 Spring Task 來單提醒 催單Apache ECharts day10~11

    蒼穹外賣 Spring Task 來單提醒 催單Apache ECharts day10~11

    Spring Task 訂單狀態(tài)定時處理 WebSocket 來單提醒 客戶催單 功能實現(xiàn): 訂單狀態(tài)定時處理 、 來單提醒 和 客戶催單 訂單狀態(tài)定時處理: 來單提醒: 客戶催單: 1.1 介紹 Spring Task 是Spring框架提供的 任務調(diào)度工具 ,可以按照約定的時間自動執(zhí)行某個代碼邏輯。 定位: 定時任務框

    2024年02月14日
    瀏覽(21)
  • itheima蒼穹外賣項目學習筆記--Day9: 訂單模塊

    (1). 查詢歷史訂單 在OrderController中,創(chuàng)建查詢方法 在OrderServiceImpl中,創(chuàng)建分頁查詢方法,及其父類接口 在OrderMapper中,添加查詢方法,并在映射文件中寫入動態(tài)SQL語句 在OrderDetailMapper中,實現(xiàn)根據(jù)訂單id查詢訂單明細 (2). 查詢訂單詳細 在OrderController中,創(chuàng)建查詢訂單詳細方

    2024年02月16日
    瀏覽(184)
  • 蒼穹外賣day10——訂單狀態(tài)定時處理(Spring Task)、來單提醒和客戶催單(WebSocket)

    蒼穹外賣day10——訂單狀態(tài)定時處理(Spring Task)、來單提醒和客戶催單(WebSocket)

    ? ?對于超時沒處理的需要定時程序處理。基于SpringTask實現(xiàn)。 來單提醒和客戶催單?;赪ebSocket實現(xiàn)。 ? ? 周幾通常不能和日一起指定。? ?cron表達式在線生成器 在線Cron表達式生成器 ?創(chuàng)建定時任務類 ? ? 新建一個task包中一個類如下 在OrderMapper中 運行測試無誤。 ? ? 導

    2024年02月14日
    瀏覽(20)
  • itheima蒼穹外賣項目學習筆記--Day7:緩存商品 / 購物車

    通過Redis來緩存菜品數(shù)據(jù),減少數(shù)據(jù)庫查詢操作。 緩存邏輯分析: 每個分類下的菜品保存一份緩存數(shù)據(jù) 數(shù)據(jù)庫中菜品數(shù)據(jù)有變更時清理緩存數(shù)據(jù) 修改用戶端接口 DishController 的 list 方法,加入緩存處理邏輯 修改管理端接口 DishController 的相關方法,加入清理緩存的邏輯,需要

    2024年02月16日
    瀏覽(23)
  • itheima蒼穹外賣項目學習筆記--Day1:項目介紹與開發(fā)環(huán)境搭建

    itheima蒼穹外賣項目學習筆記--Day1:項目介紹與開發(fā)環(huán)境搭建

    (1). 前端環(huán)境搭建 前端工程基于 nginx 運行 啟動nginx:雙擊 nginx.exe 即可啟動 nginx 服務,訪問端口號為 80 (2). 后端環(huán)境搭建 后端工程基于 maven 進行項目構(gòu)建,并且進行分模塊開發(fā) (3). 前后端聯(lián)調(diào) 修改數(shù)據(jù)庫中明文密碼,改為MD5加密后的密文 修改Java代碼,前端提交的密碼進行

    2024年02月15日
    瀏覽(29)
  • 如何順利打開黑馬蒼穹外賣前端頁面?/前端環(huán)境搭建步驟

    如何順利打開黑馬蒼穹外賣前端頁面?/前端環(huán)境搭建步驟

    處理了一個早上加下午的bug 接下來來詳細記錄一下 若之前有安裝過npm和vscode的,避免發(fā)生版本沖突情況的,可以考慮全部刪掉,再重新安裝, 卸載方法如下: 如何全方位卸載Node.js?a later version of node.js is already installed. Setup will now exit.ERROR-CSDN博客 我的例子:我之前安裝的是

    2024年04月15日
    瀏覽(32)
  • 【黑馬蒼穹外賣】個人小程序模擬實現(xiàn)微信支付

    【黑馬蒼穹外賣】個人小程序模擬實現(xiàn)微信支付

    1.? 在個人學習的特殊情況的局限下,沒有辦法實現(xiàn)真正的微信支付功能! 2. 微信小程序代碼 ? ① 在項目pay包下的pay.js文件下,將原來的 支付詳情 進行替換。 3. java需要修改的后臺代碼 ? ?①? 在這個API中可以使用反回類型的builder進行屬性值的賦值 (這里面展示的是誰便

    2024年04月25日
    瀏覽(16)
  • 蒼穹外賣-day10:Spring Task、訂單狀態(tài)定時處理、來單提醒(WebSocket的應用)、客戶催單(WebSocket的應用)

    蒼穹外賣-day10:Spring Task、訂單狀態(tài)定時處理、來單提醒(WebSocket的應用)、客戶催單(WebSocket的應用)

    Spring Task 訂單狀態(tài)定時處理 WebSocket 來單提醒 客戶催單 功能實現(xiàn): 訂單狀態(tài)定時處理 、 來單提醒 和 客戶催單 訂單狀態(tài)定時處理: 來單提醒: 客戶催單: 1.1 介紹 Spring Task 是Spring框架提供的任務調(diào)度工具,可以按照約定的時間 自動執(zhí)行 某個代碼邏輯。 定位 :定時任務框

    2024年04月28日
    瀏覽(23)
  • itheima蒼穹外賣項目學習筆記--Day10: 訂單狀態(tài)定時處理/來單提醒和客戶催單

    Spring Task 是Spring框架提供的任務調(diào)度工具,可以按照約定的時間自動執(zhí)行某個代碼邏輯。 定位:定時任務框架 作用:定時自動執(zhí)行某段Java代碼 cron表達式其實就是一個字符串,通過cron表達式可以定義任務觸發(fā)的時間構(gòu)成規(guī)則: 分為6或7個域,由空格分隔開, 每個域代表一個

    2024年02月17日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包