最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot實(shí)現(xiàn)excel表格導(dǎo)出幾種常見方法

 更新時(shí)間:2023年11月29日 14:42:10   作者:就叫飛六吧  
在日常的開發(fā)中避免不了操作Excel,下面這篇文章主要給大家介紹了關(guān)于springboot實(shí)現(xiàn)excel表格導(dǎo)出的幾種常見方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

簡(jiǎn)介

在Spring Boot中,實(shí)現(xiàn)Excel表格導(dǎo)出的方式有很多種,以下是幾種常見的方法:

  • 使用Apache POI:Apache POI是一個(gè)開源的Java API,用于處理Microsoft Office文檔格式,包括Excel電子表格。在Spring Boot中,可以使用Apache POI創(chuàng)建Excel文檔,并將其寫入HTTP響應(yīng)中,以實(shí)現(xiàn)Excel表格的導(dǎo)出。
  • 使用EasyPOI:EasyPOI是一個(gè)開源的Java API,用于處理Excel電子表格。它基于Apache POI和Jxls開發(fā),提供了更加簡(jiǎn)單易用的API,可以幫助我們快速實(shí)現(xiàn)Excel表格的導(dǎo)出。
  • 使用Jxls:Jxls是一個(gè)用于生成Excel報(bào)表的Java庫。在Spring Boot中,可以使用Jxls創(chuàng)建Excel文檔,并將其寫入HTTP響應(yīng)中,以實(shí)現(xiàn)Excel表格的導(dǎo)出。
  • 使用第三方庫:還有其他一些第三方的Java庫可以用于生成Excel電子表格,例如Aspose.Cells、JExcelApi等,它們也可以在Spring Boot中使用,實(shí)現(xiàn)Excel表格的導(dǎo)出。

需要注意的是,無論使用哪種方法,都需要將Excel文檔寫入HTTP響應(yīng)中,并設(shè)置正確的Content-Type和Content-Disposition頭信息,以確保瀏覽器能夠正確地識(shí)別Excel文檔并下載它。

一、Apache POI

  • maven依賴坐標(biāo)
<dependency>
  <groupId>org.apache.poi</groupId>
  <artifactId>poi</artifactId>
  <version>4.1.2</version>
</dependency>
<dependency>
  <groupId>org.apache.poi</groupId>
  <artifactId>poi-ooxml</artifactId>
  <version>4.1.2</version>
</dependency>
@RestController
public class ExcelController {

  @GetMapping("/export")
  public void exportExcel(HttpServletResponse response) throws Exception {
    // 創(chuàng)建Excel文檔
    XSSFWorkbook workbook = new XSSFWorkbook();
    XSSFSheet sheet = workbook.createSheet("Sheet1");

    // 創(chuàng)建表頭
    XSSFRow header = sheet.createRow(0);
    header.createCell(0).setCellValue("姓名");
    header.createCell(1).setCellValue("年齡");
    header.createCell(2).setCellValue("性別");

    // 填充數(shù)據(jù)
    List<User> users = getUserList();
    int rowIndex = 1;
    for (User user : users) {
      XSSFRow row = sheet.createRow(rowIndex++);
      row.createCell(0).setCellValue(user.getName());
      row.createCell(1).setCellValue(user.getAge());
      row.createCell(2).setCellValue(user.getGender());
    }

    // 設(shè)置響應(yīng)頭信息
    response.setContentType("application/vnd.ms-excel");
    response.setHeader("Content-Disposition", "attachment; filename=users.xlsx");

    // 將Excel文檔寫入響應(yīng)流中
    ServletOutputStream outputStream = response.getOutputStream();
    workbook.write(outputStream);
    outputStream.flush();
    outputStream.close();
  }

  // 模擬獲取用戶數(shù)據(jù)
  private List<User> getUserList() {
    List<User> users = new ArrayList<>();
    users.add(new User("張三", 25, "男"));
    users.add(new User("李四", 30, "女"));
    users.add(new User("王五", 28, "男"));
    return users;
  }

  // 用戶實(shí)體類
  private static class User {
    private String name;
    private int age;
    private String gender;

    public User(String name, int age, String gender) {
      this.name = name;
      this.age = age;
      this.gender = gender;
    }

    public String getName() {
      return name;
    }

    public void setName(String name) {
      this.name = name;
    }

    public int getAge() {
      return age;
    }

    public void setAge(int age) {
      this.age = age;
    }

    public String getGender() {
      return gender;
    }

    public void setGender(String gender) {
      this.gender = gender;
    }
  }
}

二、Easy POI

  • maven依賴坐標(biāo)
<dependency>
  <groupId>cn.afterturn</groupId>
  <artifactId>easypoi-base</artifactId>
  <version>4.2.0</version>
</dependency>
<dependency>
  <groupId>cn.afterturn</groupId>
  <artifactId>easypoi-web</artifactId>
  <version>4.2.0</version>
</dependency>

@RestController
public class ExcelController {

  @GetMapping("/export")
  public void exportExcel(HttpServletResponse response) throws Exception {
    // 創(chuàng)建Excel文檔
    Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("用戶列表", "用戶信息"), User.class, getUserList());

    // 設(shè)置響應(yīng)頭信息
    response.setContentType("application/vnd.ms-excel");
    response.setHeader("Content-Disposition", "attachment; filename=users.xlsx");

    // 將Excel文檔寫入響應(yīng)流中
    ServletOutputStream outputStream = response.getOutputStream();
    workbook.write(outputStream);
    outputStream.flush();
    outputStream.close();
  }

  // 模擬獲取用戶數(shù)據(jù)
  private List<User> getUserList() {
    List<User> users = new ArrayList<>();
    users.add(new User("張三", 25, "男"));
    users.add(new User("李四", 30, "女"));
    users.add(new User("王五", 28, "男"));
    return users;
  }

  // 用戶實(shí)體類
  private static class User {
    @Excel(name = "姓名", orderNum = "0")
    private String name;
    @Excel(name = "年齡", orderNum = "1")
    private int age;
    @Excel(name = "性別", orderNum = "2")
    private String gender;

    public User(String name, int age, String gender) {
      this.name = name;
      this.age = age;
      this.gender = gender;
    }

    public String getName() {
      return name;
    }

    public void setName(String name) {
      this.name = name;
    }

    public int getAge() {
      return age;
    }

    public void setAge(int age) {
      this.age = age;
    }

    public String getGender() {
      return gender;
    }

    public void setGender(String gender) {
      this.gender = gender;
    }
  }
}

三、Jxls

  • maven依賴坐標(biāo)
<dependency>
  <groupId>org.jxls</groupId>
  <artifactId>jxls</artifactId>
  <version>2.14.0</version>
</dependency>
<dependency>
  <groupId>org.jxls</groupId>
  <artifactId>jxls-poi</artifactId>
  <version>2.14.0</version>
</dependency>

@RestController
public class ExcelController {

  @GetMapping("/export")
  public void exportExcel(HttpServletResponse response) throws Exception {
    // 加載Excel模板
    InputStream inputStream = getClass().getResourceAsStream("/templates/user_template.xlsx");
    Workbook workbook = WorkbookFactory.create(inputStream);

    // 填充數(shù)據(jù)
    List<User> users = getUserList();
    Map<String, Object> model = new HashMap<>();
    model.put("users", users);
    JxlsHelper.getInstance().processTemplate(model, workbook.getSheetAt(0));

    // 設(shè)置響應(yīng)頭信息
    response.setContentType("application/vnd.ms-excel");
    response.setHeader("Content-Disposition", "attachment; filename=users.xlsx");

    // 將Excel文檔寫入響應(yīng)流中
    ServletOutputStream outputStream = response.getOutputStream();
    workbook.write(outputStream);
    outputStream.flush();
    outputStream.close();
  }

  // 模擬獲取用戶數(shù)據(jù)
  private List<User> getUserList() {
    List<User> users = new ArrayList<>();
    users.add(new User("張三", 25, "男"));
    users.add(new User("李四", 30, "女"));
    users.add(new User("王五", 28, "男"));
    return users;
  }

  // 用戶實(shí)體類
  private static class User {
    private String name;
    private int age;
    private String gender;

    public User(String name, int age, String gender) {
      this.name = name;
      this.age = age;
      this.gender = gender;
    }

    public String getName() {
      return name;
    }

    public void setName(String name) {
      this.name = name;
    }

    public int getAge() {
      return age;
    }

    public void setAge(int age) {
      this.age = age;
    }

    public String getGender() {
      return gender;
    }

    public void setGender(String gender) {
      this.gender = gender;
    }
  }
}

總結(jié) 

到此這篇關(guān)于springboot實(shí)現(xiàn)excel表格導(dǎo)出幾種常見方法的文章就介紹到這了,更多相關(guān)springboot excel表格導(dǎo)出內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java中使用jaxp進(jìn)行sax解析_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java中使用jaxp進(jìn)行sax解析_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    使用SAX的優(yōu)勢(shì)在于其解析速度較快,相對(duì)于DOM而言占用內(nèi)存較少。這篇文章主要介紹了Java中使用jaxp進(jìn)行sax解析,需要的朋友可以參考下
    2017-08-08
  • Java實(shí)現(xiàn)RSA算法的方法詳解

    Java實(shí)現(xiàn)RSA算法的方法詳解

    這篇文章主要介紹了Java實(shí)現(xiàn)RSA算法的方法,結(jié)合實(shí)例形式分析了RSA算法的原理、實(shí)現(xiàn)與使用方法,需要的朋友可以參考下
    2018-03-03
  • java中ThreadPoolExecutor常識(shí)匯總

    java中ThreadPoolExecutor常識(shí)匯總

    這篇文章主要介紹了java中ThreadPoolExecutor常識(shí)匯總,線程池技術(shù)在并發(fā)時(shí)經(jīng)常會(huì)使用到,java中的線程池的使用是通過調(diào)用ThreadPoolExecutor來實(shí)現(xiàn)的,需要的朋友可以參考下
    2019-06-06
  • java獲取nvidia顯卡信息的實(shí)現(xiàn)示例

    java獲取nvidia顯卡信息的實(shí)現(xiàn)示例

    現(xiàn)在的需求是要獲取nvidia顯卡的使用情況,本文主要介紹了java獲取nvidia顯卡信息的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02
  • Spark?SQL配置及使用教程

    Spark?SQL配置及使用教程

    SparkSQL是spark的一個(gè)模塊,主入口是SparkSession,將SQL查詢與Spark程序無縫混合,這篇文章主要介紹了Spark?SQL配置及使用,需要的朋友可以參考下
    2021-12-12
  • 詳解MyBatis 常用寫法

    詳解MyBatis 常用寫法

    MyBatis 是一款優(yōu)秀的持久層框架,它支持定制化 SQL、存儲(chǔ)過程以及高級(jí)映射。這篇文章給大家介紹了MyBatis 常用寫法,感興趣的朋友跟隨小編一起看看吧
    2018-11-11
  • drools的簡(jiǎn)單入門案例場(chǎng)景分析

    drools的簡(jiǎn)單入門案例場(chǎng)景分析

    drools是一款由JBoss組織提供的基于Java語言開發(fā)的開源規(guī)則引擎,可以將復(fù)雜且多變的業(yè)務(wù)規(guī)則從硬編碼中解放出來,這篇文章主要介紹了drools的簡(jiǎn)單入門案例,需要的朋友可以參考下
    2022-05-05
  • SpringBoot五種獲取ApplicationContext的實(shí)現(xiàn)方式

    SpringBoot五種獲取ApplicationContext的實(shí)現(xiàn)方式

    本文系統(tǒng)梳理了獲取Spring ApplicationContext的多種方式,包括創(chuàng)建工具類、實(shí)現(xiàn)ApplicationContextInitializer接口、ApplicationListener接口、啟動(dòng)類配置、ApplicationContextAware接口及@Resource注解注入,提供便捷的bean獲取與容器操作方案
    2025-09-09
  • Springboot中集成Swagger2框架的方法

    Springboot中集成Swagger2框架的方法

    這篇文章主要介紹了Springboot中集成Swagger2框架的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-12-12
  • Java Set簡(jiǎn)介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java Set簡(jiǎn)介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Set最大的特性就是不允許在其中存放的元素是重復(fù)的。接下來通過本文給大家分享java set常用方法和原理分析,需要的的朋友參考下吧
    2017-05-05

最新評(píng)論

双鸭山市| 石楼县| 宜兰市| 罗田县| 桓仁| 抚顺市| 遂川县| 榆树市| 土默特左旗| 延川县| 虎林市| 曲水县| 金坛市| 东丽区| 宁乡县| 白朗县| 星子县| 皋兰县| 英山县| 金湖县| 安福县| 高淳县| 海林市| 山丹县| 辽源市| 淮北市| 阿拉善右旗| 隆回县| 新宁县| 遂昌县| 宜章县| 平乐县| 含山县| 棋牌| 广东省| 安多县| 杨浦区| 敦煌市| 平舆县| 南皮县| 河津市|