实战分享之springboot+easypoi快速业务集成1

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,118元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
简介: 实战分享之springboot+easypoi快速业务集成1

1.依赖引入

        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-base</artifactId>
            <version>4.1.0</version>
        </dependency>
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-web</artifactId>
            <version>4.1.0</version>
        </dependency>
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-annotation</artifactId>
            <version>4.1.0</version>
        </dependency>

2.封装easypoi工具类

```package com.wzz.utils;

import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.List;
import java.util.Map;
import java.util.NoSuchElementException;

/**

  • Excel导入导出工具类
  • @author pangu
    */
    public class ExcelUtil {

    /**

    • 导出工具类
    • @param list
    • @param title
    • @param sheetName
    • @param pojoClass
    • @param fileName
    • @param isCreateHeader
    • @param response
      */
      public static void exportExcel(List<?> list, String title, String sheetName, Class<?> pojoClass,

                              String fileName, boolean isCreateHeader, HttpServletResponse response){
      

      ExportParams exportParams = new ExportParams(title, sheetName);
      exportParams.setCreateHeadRows(isCreateHeader);
      defaultExport(list, pojoClass, fileName, response, exportParams);
      }

      /**

    • 导出工具类
    • @param list
    • @param title
    • @param sheetName
    • @param pojoClass
    • @param fileName
    • @param response
      */
      public static void exportExcel(List<?> list, String title, String sheetName, Class<?> pojoClass,String fileName,

                              HttpServletResponse response){
      

      ExportParams exportParams = new ExportParams(title, sheetName);
      exportParams.setStyle(ExcelStyleUtil.class);
      defaultExport(list, pojoClass, fileName, response, exportParams);
      }

      public static void exportExcel(List> list, String fileName, HttpServletResponse response){
      defaultExport(list, fileName, response);
      }

      private static void defaultExport(List<?> list, Class<?> pojoClass, String fileName,

                                 HttpServletResponse response, ExportParams exportParams) {
      

      //TODO设置标题颜色

      Workbook workbook = ExcelExportUtil.exportExcel(exportParams,pojoClass,list);
      if (workbook != null); downLoadExcel(fileName, response, workbook);
      }

      private static void downLoadExcel(String fileName, HttpServletResponse response, Workbook workbook) {
      try {

       response.setCharacterEncoding("UTF-8");
       response.setHeader("content-Type", "application/vnd.ms-excel");
       response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
       workbook.write(response.getOutputStream());
      

      } catch (IOException e) {

       //throw new NormalException(e.getMessage());
      

      }
      }

      private static void defaultExport(List> list, String fileName, HttpServletResponse response) {
      Workbook workbook = ExcelExportUtil.exportExcel(list, ExcelType.HSSF);
      if (workbook != null);
      downLoadExcel(fileName, response, workbook);
      }

      public static List importExcel(String filePath,Integer titleRows,Integer headerRows, Class pojoClass){
      if (StringUtils.isBlank(filePath)){

       return null;
      

      }
      ImportParams params = new ImportParams();
      params.setTitleRows(titleRows);
      params.setHeadRows(headerRows);
      List list = null;
      try {

       list = ExcelImportUtil.importExcel(new File(filePath), pojoClass, params);
      

      }catch (NoSuchElementException e){

       //throw new NormalException("模板不能为空");
      

      } catch (Exception e) {

       e.printStackTrace();
       //throw new NormalException(e.getMessage());
      

      } return list;
      }

      public static List importExcel(MultipartFile file, Integer titleRows, Integer headerRows, Class pojoClass){
      if (file == null){ return null;
      }
      ImportParams params = new ImportParams();
      params.setTitleRows(titleRows);
      params.setHeadRows(headerRows);
      List list = null;
      try {

       list = ExcelImportUtil.importExcel(file.getInputStream(), pojoClass, params);
      

      }catch (NoSuchElementException e){

       // throw new NormalException("excel文件不能为空");
      

      } catch (Exception e) {

       //throw new NormalException(e.getMessage());
       System.out.println(e.getMessage());
      

      }
      return list;
      }

}
```

相关文章
|
2月前
|
分布式计算 大数据 Apache
ClickHouse与大数据生态集成:Spark & Flink 实战
【10月更文挑战第26天】在当今这个数据爆炸的时代,能够高效地处理和分析海量数据成为了企业和组织提升竞争力的关键。作为一款高性能的列式数据库系统,ClickHouse 在大数据分析领域展现出了卓越的能力。然而,为了充分利用ClickHouse的优势,将其与现有的大数据处理框架(如Apache Spark和Apache Flink)进行集成变得尤为重要。本文将从我个人的角度出发,探讨如何通过这些技术的结合,实现对大规模数据的实时处理和分析。
177 2
ClickHouse与大数据生态集成:Spark & Flink 实战
|
10天前
|
存储 JavaScript 开发工具
基于HarmonyOS 5.0(NEXT)与SpringCloud架构的跨平台应用开发与服务集成研究【实战】
本次的.HarmonyOS Next ,ArkTS语言,HarmonyOS的元服务和DevEco Studio 开发工具,为开发者提供了构建现代化、轻量化、高性能应用的便捷方式。这些技术和工具将帮助开发者更好地适应未来的智能设备和服务提供方式。
36 8
基于HarmonyOS 5.0(NEXT)与SpringCloud架构的跨平台应用开发与服务集成研究【实战】
|
2天前
|
存储 安全 Java
Spring Boot 3 集成Spring AOP实现系统日志记录
本文介绍了如何在Spring Boot 3中集成Spring AOP实现系统日志记录功能。通过定义`SysLog`注解和配置相应的AOP切面,可以在方法执行前后自动记录日志信息,包括操作的开始时间、结束时间、请求参数、返回结果、异常信息等,并将这些信息保存到数据库中。此外,还使用了`ThreadLocal`变量来存储每个线程独立的日志数据,确保线程安全。文中还展示了项目实战中的部分代码片段,以及基于Spring Boot 3 + Vue 3构建的快速开发框架的简介与内置功能列表。此框架结合了当前主流技术栈,提供了用户管理、权限控制、接口文档自动生成等多项实用特性。
26 8
|
1月前
|
XML Java API
Spring Boot集成MinIO
本文介绍了如何在Spring Boot项目中集成MinIO,一个高性能的分布式对象存储服务。主要步骤包括:引入MinIO依赖、配置MinIO属性、创建MinIO配置类和服务类、使用服务类实现文件上传和下载功能,以及运行应用进行测试。通过这些步骤,可以轻松地在项目中使用MinIO的对象存储功能。
|
2月前
|
消息中间件 Java Kafka
什么是Apache Kafka?如何将其与Spring Boot集成?
什么是Apache Kafka?如何将其与Spring Boot集成?
76 5
|
2月前
|
消息中间件 Java Kafka
Spring Boot 与 Apache Kafka 集成详解:构建高效消息驱动应用
Spring Boot 与 Apache Kafka 集成详解:构建高效消息驱动应用
61 1
|
2月前
|
XML Java 数据库连接
SpringBoot集成Flowable:打造强大的工作流管理系统
在企业级应用开发中,工作流管理是一个核心组件,它能够帮助我们定义、执行和管理业务流程。Flowable是一个开源的工作流和业务流程管理(BPM)平台,它提供了强大的工作流引擎和建模工具。结合SpringBoot,我们可以快速构建一个高效、灵活的工作流管理系统。本文将探讨如何将Flowable集成到SpringBoot应用中,并展示其强大的功能。
398 1
|
2月前
|
消息中间件 监控 Java
您是否已集成 Spring Boot 与 ActiveMQ?
您是否已集成 Spring Boot 与 ActiveMQ?
61 0
|
2月前
|
JSON Java API
springboot集成ElasticSearch使用completion实现补全功能
springboot集成ElasticSearch使用completion实现补全功能
49 1
|
2月前
|
XML 存储 Java
SpringBoot集成Flowable:构建强大的工作流引擎
在企业级应用开发中,工作流管理是核心功能之一。Flowable是一个开源的工作流引擎,它提供了BPMN 2.0规范的实现,并且与SpringBoot框架完美集成。本文将探讨如何使用SpringBoot和Flowable构建一个强大的工作流引擎,并分享一些实践技巧。
234 0
下一篇
开通oss服务