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

SpringBoot實現excel文件生成和下載

 更新時間:2021年02月09日 14:05:28   作者:shengshenglalala  
這篇文章主要為大家詳細介紹了SpringBoot實現excel文件生成和下載,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

使用SpringBoot實現excel生成和下載,生成模板如下

controller

@RequestMapping(value = { "/downloadExcelTemplate" }, method = RequestMethod.GET)
 public String downloadExcelTemplate(HttpSession httpSession, HttpServletResponse response) {
 try {
  dealExcelService.downloadExcelTemplate(response);
  return "success";
 } catch (Exception e) {
  logger.error("downloadExcelTemplate_error", e);
  return "failure";
 }
}

service

public void downloadExcelTemplate(HttpServletResponse response) throws Exception {
 //文件名
 SimpleDateFormat format3 = new SimpleDateFormat("yyyyMMddHHmm");
 String fileName = new String(("文件名" + format3.format(new Date()) + "導入模板").getBytes(), "ISO8859_1");
 //配置請求頭
 ServletOutputStream outputStream = response.getOutputStream();
 // 組裝附件名稱和格式
 response.setHeader("Content-disposition", "attachment; filename=" + fileName + ".xlsx");
 // 創(chuàng)建一個workbook 對應一個excel應用文件
 XSSFWorkbook workBook = new XSSFWorkbook();
 // 在workbook中添加一個sheet,對應Excel文件中的sheet
 XSSFSheet sheet = workBook.createSheet("模板");
 ExportUtil exportUtil = new ExportUtil(workBook, sheet);
 XSSFCellStyle headStyle = exportUtil.getHeadStyle();
 XSSFCellStyle bodyStyle = exportUtil.getBodyStyle2();
 // 構建表頭
 XSSFRow headRow = ExportUtil.createRow(sheet, 0);
 XSSFCell cell;
 
 String[] titles = {"表頭一", "表頭二", "表頭三"};
 int index = 0;
 for (String title : titles) {
  cell = ExportUtil.createCell(headRow, index);
  cell.setCellStyle(headStyle);
  cell.setCellValue(title);
  index++;
 }
 
 try {
  workBook.write(outputStream);
  outputStream.flush();
  outputStream.close();
 } catch (IOException e) {
  e.printStackTrace();
 } finally {
  try {
  outputStream.close();
  } catch (IOException e) {
  e.printStackTrace();
  }
 }
}

ExportUtil導出工具類

package com.shengsheng.utils;
 
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.*;
 
/**
 * excel 表格導出工具類
 *
 * @author shengshenglalala
 */
public class ExportUtil {
 private XSSFWorkbook wb;
 
 private XSSFSheet sheet;
 
 /**
 * @param wb
 * @param sheet
 */
 public ExportUtil(XSSFWorkbook wb, XSSFSheet sheet) {
 this.wb = wb;
 this.sheet = sheet;
 }
 
 /**
 * 合并單元格后給合并后的單元格加邊框
 *
 * @param region
 * @param cs
 */
 public void setRegionStyle(CellRangeAddress region, XSSFCellStyle cs) {
 
 int toprowNum = region.getFirstRow();
 for (int i = toprowNum; i <= region.getLastRow(); i++) {
  XSSFRow row = sheet.getRow(i);
  for (int j = region.getFirstColumn(); j <= region.getLastColumn(); j++) {
  XSSFCell cell = row.getCell(j);
  cell.setCellStyle(cs);
  }
 }
 }
 
 /**
 * 設置表頭的單元格樣式
 *
 * @return
 */
 public XSSFCellStyle getHeadStyle() {
 // 創(chuàng)建單元格樣式
 XSSFCellStyle cellStyle = wb.createCellStyle();
 // // 設置單元格的背景顏色為淡藍色
 cellStyle.setFillForegroundColor(HSSFColor.PALE_BLUE.index);
 cellStyle.setFillPattern(XSSFCellStyle.SOLID_FOREGROUND);
 // 設置單元格居中對齊
 cellStyle.setAlignment(XSSFCellStyle.ALIGN_CENTER);
 // 設置單元格垂直居中對齊
 cellStyle.setVerticalAlignment(XSSFCellStyle.VERTICAL_CENTER);
 // 創(chuàng)建單元格內容顯示不下時自動換行
 // cellStyle.setWrapText(true);
 // 設置單元格字體樣式
 XSSFFont font = wb.createFont();
 // 設置字體加粗
 font.setBoldweight(XSSFFont.BOLDWEIGHT_BOLD);
 font.setFontName("宋體");
 // font.setFontHeight((short) 200);
 cellStyle.setFont(font);
 // 設置單元格邊框為細線條
// cellStyle.setBorderLeft(XSSFCellStyle.BORDER_THIN);
// cellStyle.setBorderBottom(XSSFCellStyle.BORDER_THIN);
// cellStyle.setBorderRight(XSSFCellStyle.BORDER_THIN);
// cellStyle.setBorderTop(XSSFCellStyle.BORDER_THIN);
 return cellStyle;
 }
 
 /**
 * 設置表體的單元格樣式
 *
 * @return
 */
 public XSSFCellStyle getBodyStyle2() {
 // 創(chuàng)建單元格樣式
 // 創(chuàng)建單元格樣式
 XSSFCellStyle cellStyle = wb.createCellStyle();
 // 創(chuàng)建單元格內容顯示不下時自動換行
 // cellStyle.setWrapText(true);
 // 設置單元格字體樣式
 XSSFFont font = wb.createFont();
 // 設置字體加粗
 // font.setBoldweight(XSSFFont.BOLDWEIGHT_BOLD);
 font.setFontName("宋體");
 font.setFontHeight((short) 200);
 font.setColor(HSSFColor.BLACK.index);
 cellStyle.setFont(font);
 // 設置單元格邊框為細線條
 return cellStyle;
 }
 
 /**
 * 沒有行,就創(chuàng)建行
 *
 * @param sheet
 * @param index
 * @return
 */
 public static XSSFRow createRow(XSSFSheet sheet, Integer index) {
 XSSFRow row = sheet.getRow(index);
 if (row == null) {
  return sheet.createRow(index);
 }
 return row;
 }
 
 /**
 * 如果沒有列,就創(chuàng)建列
 *
 * @param row
 * @param index
 * @return
 */
 public static XSSFCell createCell(XSSFRow row, Integer index) {
 XSSFCell cell = row.getCell(index);
 if (cell == null) {
  return row.createCell(index);
 }
 return cell;
 }
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Java配置JDK開發(fā)環(huán)境及環(huán)境變量

    Java配置JDK開發(fā)環(huán)境及環(huán)境變量

    這篇文章主要為大家詳細介紹了Java配置JDK開發(fā)環(huán)境及環(huán)境變量,文中安裝步驟介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • SpringBoot整合Security實現權限控制框架(案例詳解)

    SpringBoot整合Security實現權限控制框架(案例詳解)

    Spring Security是一個能夠為基于Spring的企業(yè)應用系統提供聲明式的安全訪問控制解決方案的安全框,是一個重量級的安全管理框架,本文給大家介紹的非常詳細,需要的朋友參考下吧
    2021-08-08
  • Java實現郵件發(fā)送的過程及代碼詳解

    Java實現郵件發(fā)送的過程及代碼詳解

    這篇文章主要介紹了Java實現郵件發(fā)送的過程及代碼詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • Java中通過jsch來連接遠程服務器執(zhí)行l(wèi)inux命令

    Java中通過jsch來連接遠程服務器執(zhí)行l(wèi)inux命令

    這篇文章主要介紹了Java中通過jsch來連接遠程服務器執(zhí)行l(wèi)inux命令的相關資料,需要的朋友可以參考下
    2016-03-03
  • MyBatis中的SQL映射文件配置結果映射的操作指南

    MyBatis中的SQL映射文件配置結果映射的操作指南

    MyBatis?是一款優(yōu)秀的?ORM?框架,它提供了多種配置方式來定義?SQL?語句以及結果映射規(guī)則,本文將介紹?MyBatis?中的?SQL?映射文件如何配置結果映射,包括常規(guī)類型、集合類型等多種情況,需要的朋友可以參考下
    2023-07-07
  • 解析springboot集成AOP實現日志輸出的方法

    解析springboot集成AOP實現日志輸出的方法

    如果這需要在每一個controller層去寫的話代碼過于重復,于是就使用AOP定義切面 對其接口調用前后進行攔截日志輸出。接下來通過本文給大家介紹springboot集成AOP實現日志輸出,需要的朋友可以參考下
    2021-11-11
  • 一文詳解Spring事務的實現與本質

    一文詳解Spring事務的實現與本質

    這篇文章主要介紹了Spring中事務的兩種實現方式:聲明式事務、編程式事務以及他們的本質。文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-04-04
  • Java四種訪問控制修飾符知識點總結

    Java四種訪問控制修飾符知識點總結

    本篇文章給大家詳細分析了Java四種訪問控制修飾符的相關知識點,有興趣的朋友可以參考學習下。
    2018-03-03
  • springboot整合mybatis將sql打印到日志的實例詳解

    springboot整合mybatis將sql打印到日志的實例詳解

    這篇文章主要介紹了springboot整合mybatis將sql打印到日志的實例詳解,需要的朋友可以參考下
    2017-12-12
  • java 8如何自定義收集器(collector)詳解

    java 8如何自定義收集器(collector)詳解

    這篇文章主要給大家介紹了關于java 8如何自定義收集器(collector)的相關資料,文中介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。
    2017-06-06

最新評論

磐安县| 峡江县| 绥滨县| 乐昌市| 博罗县| 溧阳市| 安康市| 武陟县| 洪江市| 满城县| 灵山县| 台南县| 苏尼特右旗| 靖安县| 澎湖县| 保亭| 锡林郭勒盟| 东阳市| 庆元县| 云阳县| 嘉黎县| 宜州市| 朝阳市| 襄垣县| 锦屏县| 卓资县| 通江县| 鹿泉市| 越西县| 时尚| 临颍县| 阿拉善右旗| 黄陵县| 株洲市| 运城市| 嘉黎县| 中阳县| 长海县| 北京市| 鄂托克前旗| 林周县|