/*
代码功能解释:
这是一个用于处理Excel文件的工具类。它提供了一系列的功能,包括:
1. **初始化**:通过`init`方法初始化ExcelUtil实例,包括设置列表数据、工作表名称、标题以及导出或导入类型。
2. **创建标题**:使用`createTitle`方法创建Excel的标题行。
3. **创建子列表标题**:如果列表对象有子列表,则通过`createSubHead`方法创建子列表的标题行。
4. **导入Excel文件**:`importExcel`方法用于从Excel文件中导入数据。根据提供的输入流、工作表名称和标题行数,该方法将数据转换为指定类的列表。
5. **导出Excel文件**:`exportExcel`方法用于将列表数据导出到Excel文件。提供了多种导出方式,包括直接导出到HttpServletResponse对象(用于Web应用中的下载),以及导出到文件。
6. **处理日期和数值**:提供了`parseDateToStr`方法用于格式化日期对象,以及处理数值(包括BigDecimal)的导出。
7. **合并单元格**:如果数据列表有子列表,并且需要合并单元格,那么使用`addCell`方法会处理合并单元格的逻辑。
8. **添加统计行**:如果数据有统计需求,`addStatisticsRow`方法会在Excel文件末尾添加统计行。
9. **处理图片**:提供了处理Excel 2003和Excel 2007中嵌入的图片数据的方法。
10. **数据格式化**:提供了自定义数据格式化的功能,通过`dataFormatHandlerAdapter`方法实现。
11. **其他功能**:包括获取工作簿、工作表、单元格样式、处理子列表等辅助方法。
整体来说,这个工具类提供了全面的Excel文件处理功能,包括导入、导出、格式化、合并单元格、添加统计行等,支持Excel 2003和Excel 2007格式,并提供了自定义数据格式化的能力。
*/
package com.ruoyi.common.utils.poi;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.ParameterizedType;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.RegExUtils;
import org.apache.commons.lang3.reflect.FieldUtils;
import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
import org.apache.poi.hssf.usermodel.HSSFPicture;
import org.apache.poi.hssf.usermodel.HSSFPictureData;
import org.apache.poi.hssf.usermodel.HSSFShape;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ooxml.POIXMLDocumentPart;
import org.apache.poi.ss.usermodel.BorderStyle;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.ClientAnchor;
import org.apache.poi.ss.usermodel.DataValidation;
import org.apache.poi.ss.usermodel.DataValidationConstraint;
import org.apache.poi.ss.usermodel.DataValidationHelper;
import org.apache.poi.ss.usermodel.DateUtil;
import org.apache.poi.ss.usermodel.Drawing;
import org.apache.poi.ss.usermodel.FillPatternType;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.usermodel.Name;
import org.apache.poi.ss.usermodel.PictureData;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.VerticalAlignment;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.ss.util.CellRangeAddressList;
import org.apache.poi.util.IOUtils;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFClientAnchor;
import org.apache.poi.xssf.usermodel.XSSFDataValidation;
import org.apache.poi.xssf.usermodel.XSSFDrawing;
import org.apache.poi.xssf.usermodel.XSSFPicture;
import org.apache.poi.xssf.usermodel.XSSFShape;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTMarker;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.annotation.Excel.ColumnType;
import com.ruoyi.common.annotation.Excel.Type;
import com.ruoyi.common.annotation.Excels;
import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.text.Convert;
import com.ruoyi.common.exception.UtilException;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.DictUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.file.FileTypeUtils;
import com.ruoyi.common.utils.file.FileUtils;
import com.ruoyi.common.utils.file.ImageUtils;
import com.ruoyi.common.utils.reflect.ReflectUtils;
/**
* Excel相关处理
*
* @author ruoyi
*/
public class ExcelUtil<T>
{
private static final Logger log = LoggerFactory.getLogger(ExcelUtil.class);
public static final String FORMULA_REGEX_STR = "=|-|\\+|@";
public static final String[] FORMULA_STR = { "=", "-", "+", "@" };
/**
* Excel sheet最大行数,默认65536
*/
public static final int sheetSize = 65536;
/**
* 工作表名称
*/
private String sheetName;
/**
* 导出类型(EXPORT:导出数据;IMPORT:导入模板)
*/
private Type type;
/**
* 工作薄对象
*/
private Workbook wb;
/**
* 工作表对象
*/
private Sheet sheet;
/**
* 样式列表
*/
private Map<String, CellStyle> styles;
/**
* 导入导出数据列表
*/
private List<T> list;
/**
* 注解列表
*/
private List<Object[]> fields;
/**
* 当前行号
*/
private int rownum;
/**
* 标题
*/
private String title;
/**
* 最大高度
*/
private short maxHeight;
/**
* 合并后最后行数
*/
private int subMergedLastRowNum = 0;
/**
* 合并后开始行数
*/
private int subMergedFirstRowNum = 1;
/**
* 对象的子列表方法
*/
private Method subMethod;
/**
* 对象的子列表属性
*/
private List<Field> subFields;
/**
* 统计列表
*/
private Map<Integer, Double> statistics = new HashMap<Integer, Double>();
/**
* 数字格式
*/
private static final DecimalFormat DOUBLE_FORMAT = new DecimalFormat("######0.00");
/**
* 实体对象
*/
public Class<T> clazz;
/**
* 需要排除列属性
*/
public String[] excludeFields;
public ExcelUtil(Class<T> clazz)
{
this.clazz = clazz;
}
/**
* 隐藏Excel中列属性
*
* @param fields 列属性名 示例[单个"name"/多个"id","name"]
* @throws Exception
*/
public void hideColumn(String... fields)
{
this.excludeFields = fields;
}
public void init(List<T> list, String sheetName, String title, Type type)
{
if (list == null)
{
list = n
没有合适的资源?快使用搜索试试~ 我知道了~
(源码)基于Spring Boot和Vue的系统管理平台.zip
共673个文件
java:298个
vue:101个
svg:87个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 184 浏览量
2024-11-14
07:15:58
上传
评论
收藏 2.19MB ZIP 举报
温馨提示
# 基于Spring Boot和Vue的系统管理平台 ## 项目简介 本项目是一个基于Spring Boot和Vue的系统管理平台,旨在提供一个高效、灵活且易于扩展的系统管理解决方案。项目涵盖了用户管理、权限管理、系统配置、定时任务、文件管理等多个功能模块,适用于各种企业级应用场景。 ## 项目的主要特性和功能 ### 1. 用户管理 用户列表查询支持根据用户名、状态等条件查询用户列表。 用户信息管理包括新增、修改、删除用户信息。 用户权限管理支持为用户分配角色和权限。 ### 2. 权限管理 角色管理支持角色的增删改查,以及角色的权限分配。 菜单管理支持菜单的增删改查,以及菜单的权限控制。 权限验证通过Spring Security实现权限验证,确保系统安全。 ### 3. 系统配置 参数配置支持系统参数的增删改查,以及参数的缓存管理。 字典管理支持系统字典的增删改查,方便系统数据的统一管理。
资源推荐
资源详情
资源评论
收起资源包目录
(源码)基于Spring Boot和Vue的系统管理平台.zip (673个子文件)
ry.bat 2KB
run.bat 272B
package.bat 163B
package.bat 152B
build.bat 120B
run-web.bat 118B
clean.bat 113B
.env.development 226B
若依环境使用手册.docx 418KB
.editorconfig 536B
.eslintignore 307B
401.gif 160KB
.gitignore 279B
ie.html 23KB
index.html 5KB
favicon.ico 6KB
ExcelUtil.java 58KB
SysMenuServiceImpl.java 29KB
Convert.java 27KB
HTMLFilter.java 20KB
RedisUtils.java 20KB
GenTableServiceImpl.java 18KB
StringUtils.java 18KB
SysUserServiceImpl.java 17KB
QxSubjectController.java 17KB
VelocityUtils.java 17KB
UUID.java 17KB
ReflectUtils.java 16KB
ServletUtils.java 15KB
MinioTemplate.java 13KB
SysRoleServiceImpl.java 12KB
SysUserController.java 12KB
SysRoleController.java 12KB
SysDeptServiceImpl.java 12KB
HttpUtils.java 11KB
Base64.java 11KB
FileUtils.java 11KB
IpUtils.java 10KB
GenTableColumn.java 10KB
QxUserController.java 10KB
GenTable.java 10KB
SysUser.java 9KB
LogAspect.java 9KB
GenController.java 9KB
HttpStatus.java 9KB
SysJobController.java 9KB
FileUploadUtils.java 9KB
QxInvitationController.java 9KB
GenUtils.java 9KB
SysConfigController.java 9KB
RedisCache.java 8KB
SysJobServiceImpl.java 8KB
TokenService.java 8KB
VerifyCodeUtils.java 8KB
Server.java 8KB
SecurityConfig.java 8KB
SysPostController.java 8KB
SysRole.java 8KB
SysMenuController.java 8KB
SysMenu.java 8KB
SysProfileController.java 8KB
QxTextMessage.java 7KB
TestController.java 7KB
SysConfigServiceImpl.java 7KB
DictUtils.java 7KB
JobInvokeUtil.java 7KB
SysDictTypeServiceImpl.java 7KB
CommonController.java 7KB
DataScopeAspect.java 7KB
SameUrlDataInterceptor.java 7KB
DateUtils.java 7KB
CacheController.java 7KB
PermissionService.java 7KB
SysDictTypeController.java 7KB
ISysUserService.java 7KB
SysDeptController.java 7KB
SysOperLog.java 7KB
LoginUser.java 7KB
ScheduleUtils.java 6KB
EscapeUtil.java 6KB
Excel.java 6KB
SysLoginService.java 6KB
AjaxResult.java 6KB
SpringUtils.java 6KB
GenConstants.java 6KB
BaseController.java 6KB
SysJob.java 6KB
SysDictData.java 6KB
SecurityUtils.java 6KB
SysPostServiceImpl.java 6KB
GlobalExceptionHandler.java 6KB
SwaggerConfig.java 6KB
ISysRoleService.java 6KB
SysDept.java 6KB
SysDictDataController.java 6KB
QxReportServiceImpl.java 6KB
QxRelationServiceImpl.java 5KB
UserDetailsServiceImpl.java 5KB
SysRegisterService.java 5KB
AsyncFactory.java 5KB
共 673 条
- 1
- 2
- 3
- 4
- 5
- 6
- 7
资源评论
t0_54coder
- 粉丝: 2408
- 资源: 3444
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功