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

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

這篇具有很好參考價(jià)值的文章主要介紹了Apache POI,springboot中導(dǎo)出excel報(bào)表。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

2. Apache POI

2.1 介紹

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

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

Apache POI 的應(yīng)用場景:

  • 銀行網(wǎng)銀系統(tǒng)導(dǎo)出交易明細(xì)

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

  • 各種業(yè)務(wù)系統(tǒng)導(dǎo)出Excel報(bào)表

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

  • 批量導(dǎo)入業(yè)務(wù)數(shù)據(jù)

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

入門案例

Apache POI既可以將數(shù)據(jù)寫入Excel文件,也可以讀取Excel文件中的數(shù)據(jù),接下來分別進(jìn)行實(shí)現(xiàn)。

Apache POI的maven坐標(biāo):(項(xiàng)目中已導(dǎo)入)

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>3.16</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>3.16</version>
</dependency>
2.2.1 將數(shù)據(jù)寫入Excel文件

1). 代碼開發(fā)

package com.sky.test;

import org.apache.poi.xssf.usermodel.XSSFCell;
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.FileInputStream;
import java.io.FileOutputStream;

public class POITest {

    /**
     * 基于POI向Excel文件寫入數(shù)據(jù)
     * @throws Exception
     */
    public static void write() throws Exception{
        //在內(nèi)存中創(chuàng)建一個(gè)Excel文件對象
        XSSFWorkbook excel = new XSSFWorkbook();
        //創(chuàng)建Sheet頁
        XSSFSheet sheet = excel.createSheet("itcast");

        //在Sheet頁中創(chuàng)建行,0表示第1行
        XSSFRow row1 = sheet.createRow(0);
        //創(chuàng)建單元格并在單元格中設(shè)置值,單元格編號也是從0開始,1表示第2個(gè)單元格
        row1.createCell(1).setCellValue("姓名");
        row1.createCell(2).setCellValue("城市");

        XSSFRow row2 = sheet.createRow(1);
        row2.createCell(1).setCellValue("張三");
        row2.createCell(2).setCellValue("北京");

        XSSFRow row3 = sheet.createRow(2);
        row3.createCell(1).setCellValue("李四");
        row3.createCell(2).setCellValue("上海");

        FileOutputStream out = new FileOutputStream(new File("D:\\itcast.xlsx"));
        //通過輸出流將內(nèi)存中的Excel文件寫入到磁盤上
        excel.write(out);

        //關(guān)閉資源
        out.flush();
        out.close();
        excel.close();
    }
    public static void main(String[] args) throws Exception {
        write();
    }
}

2). 實(shí)現(xiàn)效果

在D盤中生成itcast.xlsx文件,創(chuàng)建名稱為itcast的Sheet頁,同時(shí)將內(nèi)容成功寫入。

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

2.2.2 讀取Excel文件中的數(shù)據(jù)

1). 代碼開發(fā)

package com.sky.test;

import org.apache.poi.xssf.usermodel.XSSFCell;
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.FileInputStream;
import java.io.FileOutputStream;

public class POITest {
    /**
     * 基于POI讀取Excel文件
     * @throws Exception
     */
    public static void read() throws Exception{
        FileInputStream in = new FileInputStream(new File("D:\\itcast.xlsx"));
        //通過輸入流讀取指定的Excel文件
        XSSFWorkbook excel = new XSSFWorkbook(in);
        //獲取Excel文件的第1個(gè)Sheet頁
        XSSFSheet sheet = excel.getSheetAt(0);

        //獲取Sheet頁中的最后一行的行號
        int lastRowNum = sheet.getLastRowNum();

        for (int i = 0; i <= lastRowNum; i++) {
            //獲取Sheet頁中的行
            XSSFRow titleRow = sheet.getRow(i);
            //獲取行的第2個(gè)單元格
            XSSFCell cell1 = titleRow.getCell(1);
            //獲取單元格中的文本內(nèi)容
            String cellValue1 = cell1.getStringCellValue();
            //獲取行的第3個(gè)單元格
            XSSFCell cell2 = titleRow.getCell(2);
            //獲取單元格中的文本內(nèi)容
            String cellValue2 = cell2.getStringCellValue();

            System.out.println(cellValue1 + " " +cellValue2);
        }

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

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

2). 實(shí)現(xiàn)效果

將itcast.xlsx文件中的數(shù)據(jù)進(jìn)行讀取

Apache POI,springboot中導(dǎo)出excel報(bào)表文章來源地址http://www.zghlxwxcb.cn/news/detail-432488.html

3. 導(dǎo)出運(yùn)營數(shù)據(jù)Excel報(bào)表

3.1controller層

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

3.2service層

    @Override
    public void export(HttpServletResponse response) {
        LocalDate begin = LocalDate.now().minusDays(30);
        LocalDate end = LocalDate.now().minusDays(1);
        //查詢概覽運(yùn)營數(shù)據(jù),提供給Excel模板文件
        BusinessDataVO businessData = workspaceService.getBusinessData(LocalDateTime.of(begin,LocalTime.MIN), LocalDateTime.of(end, LocalTime.MAX));
        /**
         class.getResourceAsStream
         如果path不帶"/",那么就是從當(dāng)前class文件的路徑下找文件
         如果path帶"/",那么就是從類路徑.classpath中去找文件
         */
        InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("template/運(yùn)營數(shù)據(jù)報(bào)表模板.xlsx");

        try {
            //基于提供好的模板文件創(chuàng)建一個(gè)新的Excel表格對象
            XSSFWorkbook excel = new XSSFWorkbook(inputStream);
            //獲得Excel文件中的一個(gè)Sheet頁
            XSSFSheet sheet = excel.getSheet("Sheet1");

            sheet.getRow(1).getCell(1).setCellValue(begin + "至" + end);
            //獲得第4行
            XSSFRow row = sheet.getRow(3);
            //獲取單元格
            row.getCell(2).setCellValue(businessData.getTurnover());
            row.getCell(4).setCellValue(businessData.getOrderCompletionRate());
            row.getCell(6).setCellValue(businessData.getNewUsers());
            row = sheet.getRow(4);
            row.getCell(2).setCellValue(businessData.getValidOrderCount());
            row.getCell(4).setCellValue(businessData.getUnitPrice());
            for (int i = 0; i < 30; i++) {
                LocalDate date = begin.plusDays(i);
                //準(zhǔn)備明細(xì)數(shù)據(jù)
                businessData = workspaceService.getBusinessData(LocalDateTime.of(date,LocalTime.MIN), LocalDateTime.of(date, LocalTime.MAX));
                row = sheet.getRow(7 + i);
                row.getCell(1).setCellValue(date.toString());
                if (Objects.isNull(businessData.getTurnover())){
                    row.getCell(2).setCellValue(0.0);
                }else {
                    row.getCell(2).setCellValue(businessData.getTurnover());
                }
                if (Objects.isNull(businessData.getValidOrderCount())){
                    row.getCell(3).setCellValue(0);
                }else {
                    row.getCell(3).setCellValue(businessData.getValidOrderCount());
                }
                if (Objects.isNull(businessData.getOrderCompletionRate())){
                    row.getCell(4).setCellValue(0.0);
                }else {
                    row.getCell(4).setCellValue(businessData.getOrderCompletionRate());
                }
                if (Objects.isNull(businessData.getUnitPrice())){
                    row.getCell(5).setCellValue(0.0);
                }else {
                    row.getCell(5).setCellValue(businessData.getUnitPrice());
                }
                if (Objects.isNull(businessData.getNewUsers())){
                    row.getCell(6).setCellValue(0);
                }else {
                    row.getCell(6).setCellValue(businessData.getNewUsers());
                }
            }
            //通過輸出流將文件下載到客戶端瀏覽器中
            ServletOutputStream out = response.getOutputStream();
            excel.write(out);
            //關(guān)閉資源
            out.flush();
            out.close();
            excel.close();

        }catch (IOException e){
            e.printStackTrace();
        }
    }

到了這里,關(guān)于Apache POI,springboot中導(dǎo)出excel報(bào)表的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(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)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

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

相關(guān)文章

  • hutool poi、apache poi實(shí)現(xiàn)導(dǎo)入導(dǎo)出以及解析excel

    hutool poi、apache poi實(shí)現(xiàn)導(dǎo)入導(dǎo)出以及解析excel

    一、前言 看了例子之后后續(xù)需要更加深入學(xué)習(xí)或者更多理解其他API的話,建議看官方文檔。hutool項(xiàng)目是中國人維護(hù)的,有中文文檔,閱讀起來很方便。apache poi比較底層一點(diǎn),可以更加自由去二次開發(fā)自己所需的功能。 hutool官方文檔 hutool官方gitee apache poi官方文檔 二、基于

    2024年02月09日
    瀏覽(25)
  • Apache POI實(shí)現(xiàn)Excel導(dǎo)入讀取數(shù)據(jù)和寫入數(shù)據(jù)并導(dǎo)出

    Apache POI POI介紹 Apache POI是用Java編寫的免費(fèi)開源的跨平臺的Java API,Apache POI提供API給Java程序?qū)icrosoft Office格式檔案讀和寫的功能,其中使用最多的就是使用POI操作Excel文件。 maven坐標(biāo): POI結(jié)構(gòu): 入門案例 ExcelTest .java文件 從Excel文件讀取數(shù)據(jù)

    2024年02月12日
    瀏覽(33)
  • poi實(shí)現(xiàn)Excel文件導(dǎo)出【SpringBoot篇】

    在系統(tǒng)中,數(shù)據(jù)庫的excel文件導(dǎo)出是一項(xiàng)及為基礎(chǔ)的功能。此篇文章將通過實(shí)例利用poi實(shí)現(xiàn)excel文件導(dǎo)出。 Jakarta POI 是apache的子項(xiàng)目,目標(biāo)是處理ole2對象。它提供了一組操縱Windows文檔的Java API 。目前比較成熟的是HSSF接口,處理MS Excel(97-2002)對象。它不象我們僅僅是用csv生

    2024年02月05日
    瀏覽(27)
  • Springboot 集成 Ureport2 導(dǎo)出Excel報(bào)表、生成PDF文件

    Springboot 集成 Ureport2 導(dǎo)出Excel報(bào)表、生成PDF文件

    目錄 1.ureport 介紹: ? ? 文檔視頻教程地址: 2. 如何在springboot 項(xiàng)目中實(shí)現(xiàn)各種報(bào)表導(dǎo)出、PDF文件導(dǎo)出 2.1使用IDEA創(chuàng)建maven工程? ?2.2添加yml配置信息 application.yml: 2.3添加引用UReport2的Spring配置文件context.xml? 2.4添加property文件 2.5新建webapp目錄,新建WEB-INF 2.7 創(chuàng)建啟動(dòng)類? ?2.8

    2024年02月08日
    瀏覽(35)
  • 使用POI設(shè)計(jì)一個(gè)限制導(dǎo)出日期為三十天,且導(dǎo)出文件為excel

    使用POI設(shè)計(jì)一個(gè)限制導(dǎo)出日期為三十天,且導(dǎo)出文件為excel,前端使用Vue的element ui進(jìn)行設(shè)計(jì),前端可以通過選擇時(shí)間來導(dǎo)出具體的表格數(shù)據(jù),根據(jù)用戶選擇的時(shí)間進(jìn)行Excel文件的數(shù)據(jù)導(dǎo)出。 按照需求來設(shè)計(jì)代碼,根據(jù)element ui對前端代碼進(jìn)行設(shè)計(jì)。 后端使用 Java,依賴 Apache

    2024年02月15日
    瀏覽(20)
  • poi實(shí)現(xiàn)excel文件導(dǎo)入導(dǎo)出(基本數(shù)據(jù)導(dǎo)出、含格式導(dǎo)出、含批注導(dǎo)出、含圖片圖表導(dǎo)出)——springboot

    poi實(shí)現(xiàn)excel文件導(dǎo)入導(dǎo)出(基本數(shù)據(jù)導(dǎo)出、含格式導(dǎo)出、含批注導(dǎo)出、含圖片圖表導(dǎo)出)——springboot

    本文主要是介紹springboot + poi實(shí)現(xiàn)基本的excel文件導(dǎo)入導(dǎo)出,包含數(shù)據(jù)導(dǎo)出導(dǎo)入時(shí)數(shù)據(jù)的其他需求校驗(yàn),導(dǎo)出含有批注信息、導(dǎo)出含有圖片信息、導(dǎo)出含有圖表信息等的介紹等等,主要是一個(gè)demo盡可能簡單明了的來介紹相關(guān)功能即可。有什么問題可以在留言哦!并在文章末尾附

    2024年02月08日
    瀏覽(29)
  • 使用SpringBoot+React搭建一個(gè)Excel報(bào)表平臺

    使用SpringBoot+React搭建一個(gè)Excel報(bào)表平臺

    摘要:本文由葡萄城技術(shù)團(tuán)隊(duì)于CSDN原創(chuàng)并首發(fā)。轉(zhuǎn)載請注明出處:葡萄城官網(wǎng),葡萄城為開發(fā)者提供專業(yè)的開發(fā)工具、解決方案和服務(wù),賦能開發(fā)者。 Excel報(bào)表平臺是一款功能強(qiáng)大、操作簡單的系統(tǒng)平臺,可以幫助用戶上傳、編輯和分析報(bào)表數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)可視化。 本文所

    2024年02月16日
    瀏覽(18)
  • Excel報(bào)表框架(ExcelReport)極簡化解決復(fù)雜報(bào)表導(dǎo)出問題

    Excel報(bào)表框架(ExcelReport)極簡化解決復(fù)雜報(bào)表導(dǎo)出問題

    耗費(fèi)了半個(gè)月的時(shí)間,終于在元旦這三天把報(bào)表框架開發(fā)完成了,使用該框架你可以非常方便的導(dǎo)出 復(fù)雜的Excel報(bào)表 。 項(xiàng)目開源地址: Gitee Github 不知道各位在使用POI開發(fā)報(bào)表導(dǎo)出過程中遇到過以下的情況: 頻繁的使用中間變量記錄報(bào)表數(shù)據(jù)寫到那個(gè)Cell中了。 一個(gè)復(fù)雜的報(bào)

    2024年02月03日
    瀏覽(21)
  • ExcelExportUtil基于模板導(dǎo)出excel&POI導(dǎo)出excel

    第一步,導(dǎo)入依賴沒啥好說的; 第二步,查詢數(shù)據(jù)庫或es數(shù)據(jù)組裝成list對象; 第三步,填充MapString, Object excelMap = new HashMap(); 數(shù)據(jù)key和excel模板對應(yīng),如果一次導(dǎo)出多個(gè),可以用index區(qū)分; 第一步,導(dǎo)入依賴 第二步,上圖哈哈 就是這么簡單 沒了

    2024年02月12日
    瀏覽(21)
  • java poi導(dǎo)入Excel、導(dǎo)出excel

    java poi導(dǎo)入Excel、導(dǎo)出excel ReadPatientExcelUtil PoiUtils FileUtils

    2024年02月15日
    瀏覽(27)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包