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

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

這篇具有很好參考價(jià)值的文章主要介紹了蒼穹外賣day12 (Apache POI) 數(shù)據(jù)統(tǒng)計(jì)-Excel報(bào)表。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。


前言

工作臺(tái)用于展示各項(xiàng)運(yùn)營(yíng)數(shù)據(jù),在圖形報(bào)表中很多方法都已實(shí)現(xiàn),這部分的業(yè)務(wù)邏輯也差不多,只是返回的數(shù)據(jù)類型不一樣。
POI用于操作 Excel 文件,可以對(duì)Excel文件進(jìn)行讀寫操作
導(dǎo)出運(yùn)營(yíng)數(shù)據(jù)報(bào)表首先就是查詢近30天的運(yùn)營(yíng)數(shù)據(jù),然后通過POI將查詢到的運(yùn)營(yíng)數(shù)據(jù)寫入模板文件
最后通過輸出流將Excel文件下載到客戶端瀏覽器。


一、工作臺(tái)

工作臺(tái)是系統(tǒng)運(yùn)營(yíng)的數(shù)據(jù)看板,并提供快捷操作入口,可以有效提高商家的工作效率。
展示的數(shù)據(jù)包括:今日數(shù)據(jù)、訂單管理、菜品總覽、套餐總覽、訂單信息(已完成)
這里只展示今日數(shù)據(jù)的代碼,其他部分邏輯差不多,前面的業(yè)務(wù)邏輯中也已
對(duì)相關(guān)sql語句編寫過了,整體的業(yè)務(wù)邏輯都是根據(jù)需要返回的數(shù)據(jù)去計(jì)算對(duì)應(yīng)的值,然后封裝到VO實(shí)體類中返回給前端。

1.1 今日數(shù)據(jù)

1.1.1 接口設(shè)計(jì)

蒼穹外賣day12 (Apache POI) 數(shù)據(jù)統(tǒng)計(jì)-Excel報(bào)表,蒼穹外賣,java學(xué)習(xí),apache,excel,spring boot,java

1.1.2 代碼實(shí)現(xiàn)

1、在workspaceController中定義方法,實(shí)現(xiàn)工作臺(tái)展示今日數(shù)據(jù)

@GetMapping("/businessData")
@ApiOperation("今日數(shù)據(jù)")
public Result<BusinessDataVO> businessData(){
    //獲得當(dāng)天的開始時(shí)間
    LocalDateTime begin = LocalDateTime.now().with(LocalTime.MIN);
    LocalDateTime end = LocalDateTime.now().with(LocalTime.MAX);
    BusinessDataVO businessDataVO =  workspaceService.businessData(begin,end);
    return Result.success(businessDataVO);
}

2、在WorkspaceService中編寫businessData方法,在WorkspaceServiceImpl中實(shí)現(xiàn)

public BusinessDataVO businessData(LocalDateTime begin, LocalDateTime end) {
    Map map = new HashMap();
    map.put("begin",begin);
    map.put("end",end);
    //查詢總訂單數(shù)
    Integer totalOrderCount = orderMapper.countByMap(map);
    map.put("status", Orders.COMPLETED);
    //營(yíng)業(yè)額
    Double turnover = orderMapper.sumByMap(map);
    turnover = turnover == null? 0.0 : turnover;
    //有效訂單數(shù)
    Integer validOrderCount = orderMapper.countByMap(map);
    Double unitPrice = 0.0;
    Double orderCompletionRate = 0.0;
    if(totalOrderCount != 0 && validOrderCount != 0){
        //訂單完成率
        orderCompletionRate = validOrderCount.doubleValue() / totalOrderCount;
        //平均客單價(jià)
        unitPrice = turnover / validOrderCount;
    }
    //新增用戶數(shù)
    Integer newUsers = userMapper.countByMap(map);
    return BusinessDataVO.builder()
            .turnover(turnover)
            .validOrderCount(validOrderCount)
            .orderCompletionRate(orderCompletionRate)
            .unitPrice(unitPrice)
            .newUsers(newUsers)
            .build();
}

3、在xxxMapper中定義方法,在day11統(tǒng)計(jì)報(bào)表中很多方法都已實(shí)現(xiàn)。

1.2 訂單管理接口

蒼穹外賣day12 (Apache POI) 數(shù)據(jù)統(tǒng)計(jì)-Excel報(bào)表,蒼穹外賣,java學(xué)習(xí),apache,excel,spring boot,java

1.3菜品總覽接口

蒼穹外賣day12 (Apache POI) 數(shù)據(jù)統(tǒng)計(jì)-Excel報(bào)表,蒼穹外賣,java學(xué)習(xí),apache,excel,spring boot,java

1.4 套餐總覽接口

蒼穹外賣day12 (Apache POI) 數(shù)據(jù)統(tǒng)計(jì)-Excel報(bào)表,蒼穹外賣,java學(xué)習(xí),apache,excel,spring boot,java

1.5 訂單搜索(已完成)

1.6 各個(gè)狀態(tài)的訂單數(shù)量統(tǒng)計(jì)(已完成)

二、Apache POI

2.1 概述

Apache POI 是一個(gè)處理Miscrosoft Office各種文件格式的開源項(xiàng)目。簡(jiǎn)單來說就是,我們可以使用 POI 在 Java 程序中對(duì)Miscrosoft Office各種文件進(jìn)行讀寫操作。
一般情況下,POI 都是用于操作 Excel 文件。
應(yīng)用場(chǎng)景:

  • 銀行網(wǎng)銀系統(tǒng)導(dǎo)出交易明細(xì)
  • 各種業(yè)務(wù)系統(tǒng)導(dǎo)出Excel報(bào)表
  • 批量導(dǎo)入業(yè)務(wù)數(shù)據(jù)

2.2 效果展示

蒼穹外賣day12 (Apache POI) 數(shù)據(jù)統(tǒng)計(jì)-Excel報(bào)表,蒼穹外賣,java學(xué)習(xí),apache,excel,spring boot,java

三、導(dǎo)出運(yùn)營(yíng)數(shù)據(jù)Excel報(bào)表

3.1 業(yè)務(wù)規(guī)則

導(dǎo)出Excel形式的報(bào)表文件
導(dǎo)出最近30天的運(yùn)營(yíng)數(shù)據(jù)
蒼穹外賣day12 (Apache POI) 數(shù)據(jù)統(tǒng)計(jì)-Excel報(bào)表,蒼穹外賣,java學(xué)習(xí),apache,excel,spring boot,java

3.2 接口設(shè)計(jì)

當(dāng)前接口沒有返回?cái)?shù)據(jù),因?yàn)閳?bào)表導(dǎo)出功能本質(zhì)上是文件下載,
服務(wù)端會(huì)通過輸出流將Excel文件下載到客戶端瀏覽器
蒼穹外賣day12 (Apache POI) 數(shù)據(jù)統(tǒng)計(jì)-Excel報(bào)表,蒼穹外賣,java學(xué)習(xí),apache,excel,spring boot,java

3.3 代碼實(shí)現(xiàn)

1、設(shè)計(jì)Excel模板文件
2、在ReportController中創(chuàng)建export方法

@GetMapping("/export")
@ApiOperation("到處運(yùn)營(yíng)數(shù)據(jù)報(bào)表")
public void export(HttpServletResponse response){
    reportService.exportBusinessData(response);
}

3、在ReportService接口中聲明導(dǎo)出運(yùn)營(yíng)數(shù)據(jù)報(bào)表的方法,在ReportServiceImpl實(shí)現(xiàn)類中實(shí)現(xiàn)文章來源地址http://www.zghlxwxcb.cn/news/detail-856952.html

public void exportBusinessData(HttpServletResponse response) {
    //1. 查詢數(shù)據(jù)庫(kù),獲取營(yíng)業(yè)數(shù)據(jù)--獲取最近30天的運(yùn)營(yíng)數(shù)據(jù)
    LocalDate dateBegin = LocalDate.now().minusDays(30);
    LocalDate dateEnd = LocalDate.now().minusDays(1);
    //查詢今日數(shù)據(jù)
    BusinessDataVO businessDataVO = workspaceService.businessData(LocalDateTime.of(dateBegin, LocalTime.MIN), LocalDateTime.of(dateEnd, LocalTime.MAX));
    //2. 通過POI將數(shù)據(jù)寫入到excel文件中
    InputStream in = this.getClass().getClassLoader().getResourceAsStream("template/運(yùn)營(yíng)數(shù)據(jù)報(bào)表模板.xlsx");
    try {
        //基于模板文件創(chuàng)建一個(gè)新的Excel文件
        XSSFWorkbook excel = new XSSFWorkbook(in);
        //獲取表格文件sheet頁
        XSSFSheet sheet = excel.getSheet("Sheet1");
        //填充數(shù)據(jù)--時(shí)間
        sheet.getRow(1).getCell(1).setCellValue("時(shí)間:"+dateBegin+"至"+dateEnd);
        //獲得第4行
        XSSFRow row = sheet.getRow(3);
        row.getCell(2).setCellValue(businessDataVO.getTurnover());
        row.getCell(4).setCellValue(businessDataVO.getOrderCompletionRate());
        row.getCell(6).setCellValue(businessDataVO.getNewUsers());
        //獲得第5行
        row = sheet.getRow(4);
        row.getCell(2).setCellValue(businessDataVO.getValidOrderCount());
        row.getCell(4).setCellValue(businessDataVO.getUnitPrice());
        //填充明細(xì)數(shù)據(jù)
        for (int i = 0; i < 30; i++) {
            LocalDate date = dateBegin.plusDays(i);
            BusinessDataVO businessData = workspaceService.businessData(LocalDateTime.of(date, LocalTime.MIN), LocalDateTime.of(date, LocalTime.MAX));
            //獲得某一行
            row = sheet.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);
        //4.關(guān)閉資源
        out.close();
        excel.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

到了這里,關(guān)于蒼穹外賣day12 (Apache POI) 數(shù)據(jù)統(tǒng)計(jì)-Excel報(bào)表的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 蒼穹外賣 day12 Echats 營(yíng)業(yè)臺(tái)數(shù)據(jù)可視化整合

    蒼穹外賣 day12 Echats 營(yíng)業(yè)臺(tái)數(shù)據(jù)可視化整合

    工作臺(tái) Apache POI 導(dǎo)出運(yùn)營(yíng)數(shù)據(jù)Excel報(bào)表 功能實(shí)現(xiàn): 工作臺(tái) 、 數(shù)據(jù)導(dǎo)出 工作臺(tái)效果圖: 數(shù)據(jù)導(dǎo)出效果圖: 在數(shù)據(jù)統(tǒng)計(jì)頁面點(diǎn)擊 數(shù)據(jù)導(dǎo)出 :生成Excel報(bào)表 1.1 需求分析和設(shè)計(jì) 1.1.1 產(chǎn)品原型 工作臺(tái)是 系統(tǒng)運(yùn)營(yíng)的數(shù)據(jù)看板,并提供快捷操作入口 ,可以有效提高商家的工作效率。

    2024年02月09日
    瀏覽(27)
  • 蒼穹外賣集成 Apache POI Java實(shí)現(xiàn)Excel文件的讀寫下載

    蒼穹外賣集成 Apache POI Java實(shí)現(xiàn)Excel文件的讀寫下載

    Apache POI - the Java API for Microsoft Documents Project News 16 September 2022 - POI 5.2.3 available The Apache POI team is pleased to announce the release of 5.2.3. Several dependencies were updated to their latest versions to pick up security fixes and other improvements. A summary of changes is available in the Release Notes. A full list of changes is a

    2024年02月09日
    瀏覽(31)
  • 黑馬蒼穹外賣學(xué)習(xí)Day12

    黑馬蒼穹外賣學(xué)習(xí)Day12

    結(jié)果 Controller層 Service實(shí)現(xiàn)類

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

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

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

    2024年02月14日
    瀏覽(21)
  • Apache ECharts-數(shù)據(jù)統(tǒng)計(jì)(詳解、入門案例)

    Apache ECharts-數(shù)據(jù)統(tǒng)計(jì)(詳解、入門案例)

    簡(jiǎn)介:Apache ECharts 是一款基于 Javascript 的數(shù)據(jù)可視化圖表庫(kù),提供直觀,生動(dòng),可交互,可個(gè)性化定制的數(shù)據(jù)可視化圖表。 圖 1.1??Apache ECharts 功能、運(yùn)行環(huán)境 功能: ????????ECharts,一個(gè)使用 JavaScript 實(shí)現(xiàn)的開源可視化庫(kù),可以流暢的運(yùn)行在 PC 和移動(dòng)設(shè)備上,兼容當(dāng)前

    2024年04月13日
    瀏覽(26)
  • 蒼穹外賣day11筆記

    蒼穹外賣day11筆記

    今日首先介紹前端技術(shù)Apache ECharts,說明后端需要準(zhǔn)備的數(shù)據(jù),然后講解具體統(tǒng)計(jì)功能的實(shí)現(xiàn),包括營(yíng)業(yè)額統(tǒng)計(jì)、用戶統(tǒng)計(jì)、訂單統(tǒng)計(jì)、銷量排名。 ECharts是一款基于 Javascript 的數(shù)據(jù)可視化圖表庫(kù)。我們用它來展示圖表數(shù)據(jù)。 步驟 1). 引入echarts.js 文件 2). 為 ECharts 準(zhǔn)備一個(gè)設(shè)

    2024年02月13日
    瀏覽(25)
  • 蒼穹外賣day02項(xiàng)目日志

    蒼穹外賣day02項(xiàng)目日志

    參考產(chǎn)品原型,設(shè)計(jì)表和接口。 1.1.1設(shè)計(jì)表 看員工管理的產(chǎn)品原型: 有員工姓名、賬號(hào)、手機(jī)號(hào)、賬號(hào)狀態(tài)、最后操作時(shí)間等。 注意,操作一欄不是字段,其中的啟用禁用才是。 再看添加員工的原型: ?可以發(fā)現(xiàn)還有性別和身份證號(hào)。 不要忘了旁邊: 還有密碼。 總結(jié)出了

    2024年02月14日
    瀏覽(27)
  • 項(xiàng)目實(shí)戰(zhàn)————蒼穹外賣(DAY11)

    項(xiàng)目實(shí)戰(zhàn)————蒼穹外賣(DAY11)

    Apache ECharts 營(yíng)業(yè)額統(tǒng)計(jì) 用戶統(tǒng)計(jì) 訂單統(tǒng)計(jì) 銷量排名Top10 功能實(shí)現(xiàn): 數(shù)據(jù)統(tǒng)計(jì) 數(shù)據(jù)統(tǒng)計(jì)效果圖: 1.1 介紹 Apache ECharts 是一款基于 Javascript 的數(shù)據(jù)可視化圖表庫(kù),提供直觀,生動(dòng),可交互,可個(gè)性化定制的數(shù)據(jù)可視化圖表。 官網(wǎng)地址:Apache ECharts 常見效果展示: 1). 柱形圖

    2024年01月20日
    瀏覽(25)
  • 【100天精通Python】Day57:Python 數(shù)據(jù)分析_Pandas數(shù)據(jù)描述性統(tǒng)計(jì),分組聚合,數(shù)據(jù)透視表和相關(guān)性分析

    目錄 1 描述性統(tǒng)計(jì)(Descriptive Statistics) 2 數(shù)據(jù)分組和聚合 3 數(shù)據(jù)透視表 4 相關(guān)性分析

    2024年02月07日
    瀏覽(44)
  • SpringBoot+SSM項(xiàng)目實(shí)戰(zhàn) 蒼穹外賣(11) Apache ECharts

    SpringBoot+SSM項(xiàng)目實(shí)戰(zhàn) 蒼穹外賣(11) Apache ECharts

    繼續(xù)上一節(jié)的內(nèi)容,本節(jié)學(xué)習(xí)Apache ECharts,實(shí)現(xiàn)營(yíng)業(yè)額統(tǒng)計(jì)、用戶統(tǒng)計(jì)、訂單統(tǒng)計(jì)和銷量排名Top10功能。 數(shù)據(jù)統(tǒng)計(jì)效果圖: Apache ECharts 是一款基于 Javascript 的數(shù)據(jù)可視化圖表庫(kù),提供直觀,生動(dòng),可交互,可個(gè)性化定制的數(shù)據(jù)可視化圖表。 常見效果:柱形圖、餅形圖、折線圖

    2024年01月17日
    瀏覽(27)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包