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

Java中實現(xiàn)簡單的Excel導出

 更新時間:2019年01月16日 10:26:06   作者:Haozz_1994  
今天小編就為大家分享一篇關于Java中實現(xiàn)簡單的Excel導出,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

簡單介紹一下Java中的Excel文件導出功能(基于HttpServletResponse實現(xiàn)下載)

首先,引入需要依賴的jar包:

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

編寫一個工具類:

package exceloutput;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.streaming.SXSSFSheet;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.List;
import java.util.UUID;
/**
 * @author haozz
 * @date 2018/6/6 9:57
 * @description excel導出抽象工具類
 **/
public abstract class ExportAbstractUtil {
  public void write(HttpServletResponse response, Workbook workbook){
    String fileName = UUID.randomUUID().toString()+".xls";
    pwrite(response,workbook,fileName);
  }
  public void write(HttpServletResponse response,Workbook workbook,String fileName){
    if(StringUtils.isEmpty(fileName)){
      fileName = UUID.randomUUID().toString()+".xls";
    }
    pwrite(response,workbook,fileName);
  }
  public void write(HttpServletResponse response, List<List<String>> lists,String fileName){
    if(StringUtils.isEmpty(fileName)){
      fileName = UUID.randomUUID().toString()+".xls";
    }
    SXSSFWorkbook workbook = new SXSSFWorkbook(lists.size());
    SXSSFSheet sheet = workbook.createSheet(fileName.substring(0,fileName.indexOf(".xls")));
    Integer rowIndex = 0;
    Row row = null;
    Cell cell = null;
    for(List<String> rowData: lists ){
      Integer columnIndex = 0;
      row = sheet.createRow(rowIndex++);
      for(String columnVal:rowData){
        cell = row.createCell(columnIndex++);
        cell.setCellValue(columnVal);
      }
    }
    pwrite(response,workbook,fileName);
  }
  private void pwrite(HttpServletResponse response,Workbook workbook,String fileName){
    response.setCharacterEncoding("UTF-8");
    response.setContentType("application/vnd.ms-excel;charset=UTF-8");
    try {
      response.addHeader("Content-Disposition", "attachment; filename="+new String(fileName.getBytes("UTF-8"),"ISO8859-1"));
    } catch (UnsupportedEncodingException e) {
      e.printStackTrace();
      fileName= UUID.randomUUID().toString()+".xls";
      response.addHeader("Content-Disposition", "attachment; filename="+fileName);
    }
    try {
      workbook.write(response.getOutputStream());
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

有了這個工具類就可以實現(xiàn)Excel導出了,代碼不難,這里就不多解釋了。

在SpringBoot項目中編寫一個導出Excel的Controller,并繼承上面的ExportAbstractUtil,給出一個接口用作測試:

package com.csdn.myboot.controller;
import com.csdn.myboot.utils.ExportAbstractUtil;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
 * @author haozz
 * @date 2018/6/6 10:14
 * @description
 **/
@Controller
@RequestMapping(value = "/index")
public class HelloCtrl extends ExportAbstractUtil{
  @RequestMapping(value = "/testExcelOutPut")
  @ResponseBody
  public void testExcelOutPut(HttpServletResponse response){
    //拼接數(shù)據(jù)start
    List<List<String>> lists = new ArrayList<List<String>>();
    String rows[] = {"year","month","day"};
    List<String> rowsTitle = Arrays.asList(rows);
    lists.add(rowsTitle);
    for(int i = 0; i<=9;i++){
      String [] rowss = {"1","2","3"};
      List<String> rowssList = Arrays.asList(rowss);
      lists.add(rowssList);
    }
    //拼接數(shù)據(jù)end
    write(response,lists,"導出Excel.xls");
  }
}

瀏覽器輸入鏈接:

http://localhost:8099/index/testExcelOutPut

即可自動下載測試數(shù)據(jù)組成的Excel:

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接

相關文章

  • spring根據(jù)controller中接收請求參數(shù)不同走不同service的實現(xiàn)方法

    spring根據(jù)controller中接收請求參數(shù)不同走不同service的實現(xiàn)方法

    這篇文章主要給大家介紹了關于spring實現(xiàn)根據(jù)controller中接收請求參數(shù)不同走不同service的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2018-11-11
  • Java Swing組件布局管理器之FlowLayout(流式布局)入門教程

    Java Swing組件布局管理器之FlowLayout(流式布局)入門教程

    這篇文章主要介紹了Java Swing組件布局管理器之FlowLayout(流式布局),結合實例形式分析了Swing組件布局管理器FlowLayout流式布局的常用方法及相關使用技巧,需要的朋友可以參考下
    2017-11-11
  • Java?Calendar類使用之日期和時間處理指南

    Java?Calendar類使用之日期和時間處理指南

    這篇文章主要給大家介紹了關于Java?Calendar類使用之日期和時間處理指南的相關資料,Calendar類是Java中用于處理日期和時間的抽象類,它提供了一種獨立于特定日歷系統(tǒng)的方式來處理日期和時間,需要的朋友可以參考下
    2023-12-12
  • Java Web學習教程之Hibernate And MyBatis的理解

    Java Web學習教程之Hibernate And MyBatis的理解

    這篇文章主要給大家介紹了關于Java Web學習教程之Hibernate And MyBatis的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們來一起學習學習吧。
    2018-04-04
  • Log4j如何屏蔽某個類的日志打印

    Log4j如何屏蔽某個類的日志打印

    這篇文章主要介紹了Log4j如何屏蔽某個類的日志打印,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java獲得元素屬性的注解信息的步驟

    Java獲得元素屬性的注解信息的步驟

    在Java編程中,注解是一種為代碼添加元數(shù)據(jù)的方式,通過反射機制,我們可以獲取元素屬性上的注解信息,這個過程對于框架開發(fā)和元數(shù)據(jù)處理非常有用,能夠實現(xiàn)更靈活的功能,對java獲得元素屬性的注解信息相關知識感興趣的朋友一起看看吧
    2024-09-09
  • application.yml和bootstrap.yml不生效的3種解決方案

    application.yml和bootstrap.yml不生效的3種解決方案

    SpringBoot默認支持?properties(.properties) 和 YAML(.yml .yaml ) 配置文件,本文主要介紹了application.yml和bootstrap.yml不生效的3種解決方案,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • Spring Web項目spring配置文件隨服務器啟動時自動加載

    Spring Web項目spring配置文件隨服務器啟動時自動加載

    這篇文章主要介紹了Spring Web項目spring配置文件隨服務器啟動時自動加載,加載spring的配置文件,并且只加載一次,從而提高程序效率。具體內容詳情大家通過本文一起學習吧
    2018-01-01
  • Spring?Get請求與post請求的實現(xiàn)

    Spring?Get請求與post請求的實現(xiàn)

    在Spring中,GET請求和POST請求是兩種常見的HTTP請求方法,用于與服務器進行交互,本文詳細的介紹一下Spring?Get請求與post請求的實現(xiàn),感興趣的可以了解一下
    2023-10-10
  • Java中關于Collections集合工具類的詳細介紹

    Java中關于Collections集合工具類的詳細介紹

    Java提供了一個操作Set、List和Map等集合的工具類:Collections,該工具提供了大量方法對集合元素進行排序、查詢和修改等操作,還提供了將集合對象設置為不可變、對集合對象實現(xiàn)同步控制等方法
    2021-09-09

最新評論

台湾省| 常州市| 蚌埠市| 乐陵市| 凤山市| 黄浦区| 穆棱市| 江北区| 泰州市| 鄢陵县| 上杭县| 来安县| 巴马| 邻水| 泌阳县| 尚志市| 永安市| 北碚区| 铜川市| 金坛市| 手游| 昔阳县| 镇雄县| 吴忠市| 淄博市| 甘德县| 横峰县| 临朐县| 子洲县| 富裕县| 从江县| 溆浦县| 同心县| 耿马| 油尖旺区| 东兴市| 阳新县| 康乐县| 大庆市| 江门市| 岳普湖县|