zoukankan      html  css  js  c++  java
  • EasyExcelUtils含调用

    package com.springboot.ssm.util;

    import com.alibaba.excel.EasyExcel;
    import com.alibaba.excel.support.ExcelTypeEnum;
    import lombok.extern.slf4j.Slf4j;
    import org.apache.poi.util.IOUtils;

    import javax.servlet.ServletOutputStream;
    import javax.servlet.http.HttpServletResponse;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.UnsupportedEncodingException;
    import java.net.URLEncoder;
    import java.util.List;

    /**
    * Excel工具类
    */
    @Slf4j
    public class ExcelUtils {

    /**
    * 导出Excel(07版.xlsx)到指定路径下
    *
    * @param path 路径
    * @param excelName Excel名称
    * @param sheetName sheet页名称
    * @param clazz Excel要转换的类型
    * @param data 要导出的数据
    */
    public static void export2File(String path, String excelName, String sheetName, Class clazz, List data) {
    String fileName = path.concat(excelName).concat(ExcelTypeEnum.XLSX.getValue());
    EasyExcel.write(fileName, clazz).sheet(sheetName).doWrite(data);
    }

    /**
    * 导出Excel(07版.xlsx)到web
    *
    * @param response 响应
    * @param excelName Excel名称
    * @param sheetName sheet页名称
    * @param clazz Excel要转换的类型
    * @param data 要导出的数据
    * @throws Exception
    */
    public static void export2Web(HttpServletResponse response, String excelName, String sheetName, Class clazz, List data) throws Exception {
    response.setContentType("application/vnd.ms-excel");
    response.setCharacterEncoding("utf-8");
    // 这里URLEncoder.encode可以防止中文乱码
    excelName = URLEncoder.encode(excelName, "UTF-8");
    response.setHeader("Content-disposition", "attachment;filename=" + excelName + ExcelTypeEnum.XLSX.getValue());
    EasyExcel.write(response.getOutputStream(), clazz).sheet(sheetName).doWrite(data);
    }

    /**
    * 将指定位置指定名称的Excel导出到web
    *
    * @param response 响应
    * @param path 文件路径
    * @param excelName 文件名称
    * @return
    * @throws UnsupportedEncodingException
    */
    public static String export2Web4File(HttpServletResponse response, String path, String excelName) throws UnsupportedEncodingException {
    File file = new File(path.concat(excelName).concat(ExcelTypeEnum.XLSX.getValue()));
    if (!file.exists()) {
    return "文件不存在!";
    }

    response.setContentType("application/vnd.ms-excel");
    response.setCharacterEncoding("utf-8");
    // 这里URLEncoder.encode可以防止中文乱码
    excelName = URLEncoder.encode(excelName, "UTF-8");
    response.setHeader("Content-disposition", "attachment;filename=" + excelName + ExcelTypeEnum.XLSX.getValue());

    try (
    FileInputStream in = new FileInputStream(file);
    ServletOutputStream out = response.getOutputStream();
    ) {
    IOUtils.copy(in, out);
    return "导出成功!";
    } catch (Exception e) {
    log.error("导出文件异常:", e);
    }

    return "导出失败!";
    }

    }


    // easyexcel导出Excel到指定位置
    @GetMapping("/export2File")
    @ResponseBody
    public String export2File() {
    ExcelUtils.export2File(path, "用户表", "用户信息", User.class, userService.getAll());
    return "导出成功";
    }

    // easyexcel导出Excel到web
    @GetMapping("/export2Web")
    public void export2Web(HttpServletResponse response) {
    try {
    ExcelUtils.export2Web(response, "用户表", "用户信息", User.class, userService.getAll());
    } catch (Exception e) {
    log.error("报表导出异常:", e);
    }
    }

    // 将指定位置指定名称的Excel导出到web
    @GetMapping("/export2Web4File/{excelName}")
    @ResponseBody
    public String export2Web4File(HttpServletResponse response, @PathVariable String excelName) {
    try {
    return ExcelUtils.export2Web4File(response, path, excelName);
    } catch (Exception e) {
    log.error("文件导出异常:", e);
    }

    return "文件导出失败";
    }

    // easyexcel读取文件
    @GetMapping("/read4File")
    @ResponseBody
    public String read4File() {
    String fileName = path + "用户表导入.xlsx";
    EasyExcel.read(fileName, User.class, new UserDataListener(userService)).sheet().doRead();
    return "读取成功";
    }

    // easyexcel上传文件
    @PostMapping("/upload")
    @ResponseBody
    public String upload(MultipartFile file) throws IOException {
    EasyExcel.read(file.getInputStream(), User.class, new UserDataListener(userService)).sheet().doRead();
    return "上传成功";
    }

    非本人著作
  • 相关阅读:
    onchange 事件
    JavaScript 声明全局变量和局部变量
    Window 对象 HTML框架标签(Frame)
    HTML DOM Document 对象
    JavaScript 对象
    HTML <frame> 标签的 src 属性
    HTML DOM open() 方法
    数据类型
    python
    angular 在formGroup中失效报错 ngModel cannot be used to register form controls with a parent formGroup directive
  • 原文地址:https://www.cnblogs.com/austinspark-jessylu/p/15207121.html
Copyright © 2011-2022 走看看