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

本文涉及的产品
云原生网关 MSE Higress,422元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 实战分享之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;
      }

}
```

相关文章
|
7天前
|
分布式计算 大数据 Apache
ClickHouse与大数据生态集成:Spark & Flink 实战
【10月更文挑战第26天】在当今这个数据爆炸的时代,能够高效地处理和分析海量数据成为了企业和组织提升竞争力的关键。作为一款高性能的列式数据库系统,ClickHouse 在大数据分析领域展现出了卓越的能力。然而,为了充分利用ClickHouse的优势,将其与现有的大数据处理框架(如Apache Spark和Apache Flink)进行集成变得尤为重要。本文将从我个人的角度出发,探讨如何通过这些技术的结合,实现对大规模数据的实时处理和分析。
32 2
ClickHouse与大数据生态集成:Spark & Flink 实战
|
1月前
|
Java Maven Docker
gitlab-ci 集成 k3s 部署spring boot 应用
gitlab-ci 集成 k3s 部署spring boot 应用
|
10天前
|
JSON Java API
springboot集成ElasticSearch使用completion实现补全功能
springboot集成ElasticSearch使用completion实现补全功能
17 1
|
15天前
|
自然语言处理 Java API
Spring Boot 接入大模型实战:通义千问赋能智能应用快速构建
【10月更文挑战第23天】在人工智能(AI)技术飞速发展的今天,大模型如通义千问(阿里云推出的生成式对话引擎)等已成为推动智能应用创新的重要力量。然而,对于许多开发者而言,如何高效、便捷地接入这些大模型并构建出功能丰富的智能应用仍是一个挑战。
63 6
|
25天前
|
前端开发 Java 程序员
springboot 学习十五:Spring Boot 优雅的集成Swagger2、Knife4j
这篇文章是关于如何在Spring Boot项目中集成Swagger2和Knife4j来生成和美化API接口文档的详细教程。
47 1
|
1月前
|
存储 前端开发 Java
Spring Boot 集成 MinIO 与 KKFile 实现文件预览功能
本文详细介绍如何在Spring Boot项目中集成MinIO对象存储系统与KKFileView文件预览工具,实现文件上传及在线预览功能。首先搭建MinIO服务器,并在Spring Boot中配置MinIO SDK进行文件管理;接着通过KKFileView提供文件预览服务,最终实现文档管理系统的高效文件处理能力。
221 11
|
2月前
|
缓存 NoSQL Java
Springboot实战——黑马点评之秒杀优化
【9月更文挑战第27天】在黑马点评项目中,秒杀功能的优化对提升系统性能和用户体验至关重要。本文提出了多项Spring Boot项目的秒杀优化策略,包括数据库优化(如索引和分库分表)、缓存优化(如Redis缓存和缓存预热)、并发控制(如乐观锁、悲观锁和分布式锁)以及异步处理(如消息队列和异步任务执行)。这些策略能有效提高秒杀功能的性能和稳定性,为用户提供更佳体验。
128 6
|
21天前
|
Dart Android开发
鸿蒙Flutter实战:03-鸿蒙Flutter开发中集成Webview
本文介绍了在OpenHarmony平台上集成WebView的两种方法:一是使用第三方库`flutter_inappwebview`,通过配置pubspec.lock文件实现;二是编写原生ArkTS代码,自定义PlatformView,涉及创建入口能力、注册视图工厂、处理方法调用及页面构建等步骤。
39 0
|
2月前
|
XML Java 关系型数据库
springboot 集成 mybatis-plus 代码生成器
本文介绍了如何在Spring Boot项目中集成MyBatis-Plus代码生成器,包括导入相关依赖坐标、配置快速代码生成器以及自定义代码生成器模板的步骤和代码示例,旨在提高开发效率,快速生成Entity、Mapper、Mapper XML、Service、Controller等代码。
springboot 集成 mybatis-plus 代码生成器
|
2月前
|
Java Spring
springboot 集成 swagger 2.x 和 3.0 以及 Failed to start bean ‘documentationPluginsBootstrapper‘问题的解决
本文介绍了如何在Spring Boot项目中集成Swagger 2.x和3.0版本,并提供了解决Swagger在Spring Boot中启动失败问题“Failed to start bean ‘documentationPluginsBootstrapper’; nested exception is java.lang.NullPointerEx”的方法,包括配置yml文件和Spring Boot版本的降级。
springboot 集成 swagger 2.x 和 3.0 以及 Failed to start bean ‘documentationPluginsBootstrapper‘问题的解决