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

《蒼穹外賣》知識梳理P11-Apache POI導(dǎo)出報表

這篇具有很好參考價值的文章主要介紹了《蒼穹外賣》知識梳理P11-Apache POI導(dǎo)出報表。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

一.Apache POI

可以通過Apache POI處理excel文件,核心操作是讀和寫

應(yīng)用場景

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

使用步驟

1.導(dǎo)入maven坐標(biāo)

		<dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
        </dependency>

2.測試代碼(寫操作)

	public class PoiTest {
	
	    /**
	     * 寫操作
	     * 通過POI創(chuàng)建excel文件并寫入文件內(nèi)容
	     */
	    public static void write() throws IOException {
	        //在內(nèi)存中創(chuàng)建一個excel文件XSSFWorkbook表示excel文件
	        XSSFWorkbook excel = new XSSFWorkbook();
	        //在excel文件中創(chuàng)建一個sheet頁
	        XSSFSheet sheet = excel.createSheet("info");
	        //在sheet頁中創(chuàng)建行對象,i表示第i+1行
	        XSSFRow row = sheet.createRow(1);
	        //在行上創(chuàng)建單元格,并寫入內(nèi)容
	        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("東京");
	
	        //通過輸出流將內(nèi)存中的內(nèi)容輸出到文件中
	        FileOutputStream fileOutputStream=new FileOutputStream(new File("D:\\info.xlsx"));
	        excel.write(fileOutputStream);
	        fileOutputStream.close();
	        excel.close();
	    }
	
	    public static void main(String[] args) throws Exception {
	        write();
	    }
	}

3.運(yùn)行結(jié)果(寫操作)
《蒼穹外賣》知識梳理P11-Apache POI導(dǎo)出報表,《蒼穹外賣》實(shí)操總結(jié)系列,java,spring,maven,spring boot,mybatis,apache
4.測試代碼(讀操作)

	public class PoiTest {

	    /**
	     * 通過POI讀取excel文件中內(nèi)容
	     */
	    public static void read() throws IOException {
	        //通過輸入流讀取一個磁盤中的文件內(nèi)容;
	        FileInputStream inputStream = new FileInputStream(new File("D:\\info.xlsx"));
	        //在內(nèi)存中創(chuàng)建一個excel文件XSSFWorkbook表示excel文件,并傳入輸入流
	        XSSFWorkbook excel=new XSSFWorkbook(inputStream);
	        //按照sheet頁的名稱讀取
	        XSSFSheet sheet=excel.getSheetAt(0);
	        int lastRowNum = sheet.getLastRowNum();//獲取有文字的最后一行的行號(從0開始);
	        for (int i = 1; i < lastRowNum; i++) {
	            //獲取某一行
	            XSSFRow row=sheet.getRow(i);
	            if (row==null) continue;
	            //獲取單元格對象
	            String cellValue=row.getCell(1).getStringCellValue();
	            String cellValue1=row.getCell(2).getStringCellValue();
	            System.out.println(cellValue+" "+cellValue1);
	        }
	        //關(guān)閉輸入流
	        inputStream.close();
	        //關(guān)閉資源
	        excel.close();
	    }
	
	    public static void main(String[] args) throws Exception {
	//        write();
	        read();
	    }
	}

5.運(yùn)行結(jié)果(讀操作)
《蒼穹外賣》知識梳理P11-Apache POI導(dǎo)出報表,《蒼穹外賣》實(shí)操總結(jié)系列,java,spring,maven,spring boot,mybatis,apache

二.導(dǎo)出Excel報表

由于實(shí)際業(yè)務(wù)中可能會有復(fù)雜的報表格式,如果直接使用POI進(jìn)行讀取操作十分繁瑣,通常是先在windows上對報表格式進(jìn)行設(shè)計,得到一個模版文件,直接讀入模版文件進(jìn)行操作即可

  • 設(shè)計模版文件
  • 查詢xx天的數(shù)據(jù)
  • 將查詢到的數(shù)據(jù)寫入模版文件
  • 通過輸出流將excel文件下載到客戶端瀏覽器

實(shí)現(xiàn)步驟

  • 項(xiàng)目中導(dǎo)入模版文件,在src/main/resources/下新建template目錄用來存放模版文件,將模版.xlsx導(dǎo)入
    《蒼穹外賣》知識梳理P11-Apache POI導(dǎo)出報表,《蒼穹外賣》實(shí)操總結(jié)系列,java,spring,maven,spring boot,mybatis,apache
  • 編寫代碼,對指定位置進(jìn)行填充,寫入excel文件中的格式基本是固定的,我認(rèn)為關(guān)鍵在于傳遞的參HttpServletResponse response,response.getOutputStream(): 通過調(diào)用response對象的getOutputStream()方法,獲取到一個Servlet輸出流。Servlet輸出流是用于向客戶端發(fā)送數(shù)據(jù)的輸出流,通過這個輸出流可以將數(shù)據(jù)發(fā)送到客戶端。excel.write(outputStream): 調(diào)用excel對象的write()方法,將Excel文件內(nèi)容寫入到之前獲取的Servlet輸出流中。這會將Excel文件的內(nèi)容寫入到HTTP響應(yīng)的輸出流中,實(shí)際上是將Excel文件的字節(jié)流發(fā)送到客戶端瀏覽器。然后客戶端瀏覽器獲得響應(yīng)后自動開始下載文件.
	//通過輸出流將excel下載到客戶瀏覽器
    ServletOutputStream outputStream = response.getOutputStream();
    excel.write(outputStream);

    //關(guān)閉資源
    outputStream.close();
    excel.close();

業(yè)務(wù)層完整代碼

	/**
     * 導(dǎo)出運(yùn)行數(shù)據(jù)報表
     *
     * @param response
     */
    @Override
    public void exportBusinessData(HttpServletResponse response) {
        //查數(shù)據(jù)庫獲取營業(yè)數(shù)據(jù)
        LocalDate dateBegin = LocalDate.now().minusDays(30);
        LocalDate dateEnd = LocalDate.now().minusDays(1);
        //將日期轉(zhuǎn)換為詳細(xì)時間
        LocalDateTime dateStartPoint = LocalDateTime.of(dateBegin, LocalTime.MIN);
        LocalDateTime dateEndPoint = LocalDateTime.of(dateEnd, LocalTime.MAX);
        BusinessDataVO businessData = workspaceService.getBusinessData(dateStartPoint, dateEndPoint);
        ClassLoader loader = getClass().getClassLoader();
        InputStream stream = loader.getResourceAsStream("template/運(yùn)營數(shù)據(jù)報表模板.xlsx");
        log.info("讀入的輸入流stream{}",stream);
        //從類路徑下邊讀取資源
        InputStream inputStream = ReportServiceImpl.class.getClassLoader().getResourceAsStream("template/運(yùn)營數(shù)據(jù)報表模板.xlsx");
//        InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("template/運(yùn)營數(shù)據(jù)報表模板.xlsx");

        try {
            //基于模版文件創(chuàng)建一個新的excel文件
            XSSFWorkbook excel=new XSSFWorkbook(inputStream);
            XSSFSheet sheet1 = excel.getSheet("Sheet1");
            //填充數(shù)據(jù),填充時間
            sheet1.getRow(1).getCell(1).setCellValue("時間"+dateBegin+"至"+dateEnd);

            //獲得第四行
            XSSFRow row=sheet1.getRow(3);
            row.getCell(2).setCellValue(businessData.getTurnover());
            row.getCell(4).setCellValue(businessData.getOrderCompletionRate());
            row.getCell(6).setCellValue(businessData.getNewUsers());

            //獲得第五行
            row=sheet1.getRow(4);
            row.getCell(2).setCellValue(businessData.getValidOrderCount());
            row.getCell(4).setCellValue(businessData.getUnitPrice());

            //填充明細(xì)數(shù)據(jù)
            for (int i=0;i<30;i++){
                LocalDate date=dateBegin.plusDays(1);
                //查詢某一天的數(shù)據(jù)
                workspaceService.getBusinessData(LocalDateTime.of(dateBegin,LocalTime.MIN),
                        LocalDateTime.of(dateBegin,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(5).setCellValue(businessData.getNewUsers());

            }

            //通過輸出流將excel下載到客戶瀏覽器
            ServletOutputStream outputStream = response.getOutputStream();
            excel.write(outputStream);

            //關(guān)閉資源
            outputStream.close();
            excel.close();

        } catch (IOException e) {
            e.printStackTrace();
        }
        //將查詢到的數(shù)據(jù)寫入到Excel文件中

    }

實(shí)現(xiàn)效果
備注:并不是下載了5個(是我之前測試用的提前下載了4個)
《蒼穹外賣》知識梳理P11-Apache POI導(dǎo)出報表,《蒼穹外賣》實(shí)操總結(jié)系列,java,spring,maven,spring boot,mybatis,apache文章來源地址http://www.zghlxwxcb.cn/news/detail-825842.html

到了這里,關(guān)于《蒼穹外賣》知識梳理P11-Apache POI導(dǎo)出報表的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 《蒼穹外賣》知識梳理6-緩存商品,購物車功能

    《蒼穹外賣》知識梳理6-緩存商品,購物車功能

    一.緩存菜品 ??可以使用redis進(jìn)行緩存;另外,在實(shí)現(xiàn)緩存套餐時可以使用spring cache提高開發(fā)效率; ??通過緩存數(shù)據(jù),降低訪問數(shù)據(jù)庫的次數(shù); 使用的緩存邏輯: 1.每個分類下保存一份緩存數(shù)據(jù);就是一對key-value(dish_1表示屬于分類1的菜品列表) 2.數(shù)據(jù)庫中的菜品有變更

    2024年02月19日
    瀏覽(22)
  • Apache POI 導(dǎo)出Excel報表

    Apache POI 導(dǎo)出Excel報表

    大家好我是蘇麟 , 今天聊聊Apache POI . 介紹 Apache POI 是一個處理Miscrosoft Office各種文件格式的開源項(xiàng)目。簡單來說就是,我們可以使用 POI 在 Java 程序中對Miscrosoft Office各種文件進(jìn)行讀寫操作。 一般情況下,POI 都是用于操作 Excel 文件。 官網(wǎng) :?Apache POI - the Java API for Microsoft Do

    2024年01月17日
    瀏覽(24)
  • 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è)額統(tǒng)計、用戶統(tǒng)計、訂單統(tǒng)計和銷量排名Top10功能。 數(shù)據(jù)統(tǒng)計效果圖: Apache ECharts 是一款基于 Javascript 的數(shù)據(jù)可視化圖表庫,提供直觀,生動,可交互,可個性化定制的數(shù)據(jù)可視化圖表。 常見效果:柱形圖、餅形圖、折線圖

    2024年01月17日
    瀏覽(27)
  • Java項(xiàng)目-蒼穹外賣-Day11-Apache ECharts數(shù)據(jù)統(tǒng)計

    Java項(xiàng)目-蒼穹外賣-Day11-Apache ECharts數(shù)據(jù)統(tǒng)計

    主要是以下四項(xiàng)的統(tǒng)計,以不同形式的圖形進(jìn)行展示 自己去網(wǎng)站上看一哈,我不太懂前端 com.sky.controller.admin.ReportController com.sky.service.impl.ReportServiceImpl.java orderMapper orderMapper.xml Reportcontroller ReportServiceImpl orderMapper.xml reportController ReportServiceImpl orderMapper.xml

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

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

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

    2024年02月14日
    瀏覽(21)
  • 蒼穹外賣亮點(diǎn)再梳理 ||

    蒼穹外賣亮點(diǎn)再梳理 ||

    一、項(xiàng)目整體亮點(diǎn): 【注:基于每個亮點(diǎn),均有整理的相關(guān)知識,可在博客中查看】 1.數(shù)據(jù)庫的設(shè)計采用RBAC(基于角色訪問控制)的權(quán)限設(shè)計。 RBAC將權(quán)限授予角色,然后將用戶分配給角色,從而簡化了權(quán)限管理。這種方法使得權(quán)限管理更加模塊化和可管理,有利于系統(tǒng)的安

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

    蒼穹外賣day11筆記

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

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

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

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

    2024年01月20日
    瀏覽(25)
  • Apache POI,springboot中導(dǎo)出excel報表

    Apache POI,springboot中導(dǎo)出excel報表

    2.1 介紹 Apache POI 是一個處理Miscrosoft Office各種文件格式的開源項(xiàng)目。簡單來說就是,我們可以使用 POI 在 Java 程序中對Miscrosoft Office各種文件進(jìn)行讀寫操作。 一般情況下,POI 都是用于操作 Excel 文件。 Apache POI 的應(yīng)用場景: 銀行網(wǎng)銀系統(tǒng)導(dǎo)出交易明細(xì) 各種業(yè)務(wù)系統(tǒng)導(dǎo)出Excel報

    2024年02月02日
    瀏覽(20)
  • 【學(xué)習(xí)筆記】java項(xiàng)目—蒼穹外賣day11

    【學(xué)習(xí)筆記】java項(xiàng)目—蒼穹外賣day11

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

    2024年04月09日
    瀏覽(29)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包