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 "上传成功";
    }

    非本人著作
  • 相关阅读:
    通过域名方式决定使用哪个数据库
    OpenERP/Odoo命令行参数
    修改pip源
    解决python "Non-ASCII character"错误
    Synergy 鼠标和键盘共享软件
    java 线程复习笔记
    常用设计模式--代理模式
    数据结构--二叉树
    mysql 索引的数据结构(B树和B+树)
    JS更改树型json的key键
  • 原文地址:https://www.cnblogs.com/austinspark-jessylu/p/15207121.html
Copyright © 2011-2022 走看看