|
|
@@ -1,69 +1,5 @@
|
|
|
package com.ktg.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.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.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.RegExUtils;
|
|
|
-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.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.ktg.common.annotation.Excel;
|
|
|
import com.ktg.common.annotation.Excel.ColumnType;
|
|
|
import com.ktg.common.annotation.Excel.Type;
|
|
|
@@ -79,10 +15,33 @@ import com.ktg.common.utils.file.FileTypeUtils;
|
|
|
import com.ktg.common.utils.file.FileUtils;
|
|
|
import com.ktg.common.utils.file.ImageUtils;
|
|
|
import com.ktg.common.utils.reflect.ReflectUtils;
|
|
|
+import org.apache.commons.lang3.RegExUtils;
|
|
|
+import org.apache.poi.hssf.usermodel.*;
|
|
|
+import org.apache.poi.ooxml.POIXMLDocumentPart;
|
|
|
+import org.apache.poi.ss.usermodel.*;
|
|
|
+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.*;
|
|
|
+import org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTMarker;
|
|
|
+import org.slf4j.Logger;
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
+
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
+import java.io.*;
|
|
|
+import java.lang.reflect.Field;
|
|
|
+import java.lang.reflect.Method;
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.text.DecimalFormat;
|
|
|
+import java.time.LocalDate;
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* Excel相关处理
|
|
|
- *
|
|
|
+ *
|
|
|
* @author ruoyi
|
|
|
*/
|
|
|
public class ExcelUtil<T>
|
|
|
@@ -202,7 +161,7 @@ public class ExcelUtil<T>
|
|
|
|
|
|
/**
|
|
|
* 对excel表单默认第一个索引名转换成list
|
|
|
- *
|
|
|
+ *
|
|
|
* @param is 输入流
|
|
|
* @return 转换后集合
|
|
|
*/
|
|
|
@@ -213,7 +172,7 @@ public class ExcelUtil<T>
|
|
|
|
|
|
/**
|
|
|
* 对excel表单默认第一个索引名转换成list
|
|
|
- *
|
|
|
+ *
|
|
|
* @param is 输入流
|
|
|
* @param titleNum 标题占用行数
|
|
|
* @return 转换后集合
|
|
|
@@ -225,7 +184,7 @@ public class ExcelUtil<T>
|
|
|
|
|
|
/**
|
|
|
* 对excel表单指定表格索引名转换成list
|
|
|
- *
|
|
|
+ *
|
|
|
* @param sheetName 表格索引名
|
|
|
* @param titleNum 标题占用行数
|
|
|
* @param is 输入流
|
|
|
@@ -405,7 +364,7 @@ public class ExcelUtil<T>
|
|
|
|
|
|
/**
|
|
|
* 对list数据源将其里面的数据导入到excel表单
|
|
|
- *
|
|
|
+ *
|
|
|
* @param list 导出数据集合
|
|
|
* @param sheetName 工作表的名称
|
|
|
* @return 结果
|
|
|
@@ -417,7 +376,7 @@ public class ExcelUtil<T>
|
|
|
|
|
|
/**
|
|
|
* 对list数据源将其里面的数据导入到excel表单
|
|
|
- *
|
|
|
+ *
|
|
|
* @param list 导出数据集合
|
|
|
* @param sheetName 工作表的名称
|
|
|
* @param title 标题
|
|
|
@@ -431,7 +390,7 @@ public class ExcelUtil<T>
|
|
|
|
|
|
/**
|
|
|
* 对list数据源将其里面的数据导入到excel表单
|
|
|
- *
|
|
|
+ *
|
|
|
* @param response 返回数据
|
|
|
* @param list 导出数据集合
|
|
|
* @param sheetName 工作表的名称
|
|
|
@@ -444,7 +403,7 @@ public class ExcelUtil<T>
|
|
|
|
|
|
/**
|
|
|
* 对list数据源将其里面的数据导入到excel表单
|
|
|
- *
|
|
|
+ *
|
|
|
* @param response 返回数据
|
|
|
* @param list 导出数据集合
|
|
|
* @param sheetName 工作表的名称
|
|
|
@@ -461,7 +420,7 @@ public class ExcelUtil<T>
|
|
|
|
|
|
/**
|
|
|
* 对list数据源将其里面的数据导入到excel表单
|
|
|
- *
|
|
|
+ *
|
|
|
* @param sheetName 工作表的名称
|
|
|
* @return 结果
|
|
|
*/
|
|
|
@@ -472,7 +431,7 @@ public class ExcelUtil<T>
|
|
|
|
|
|
/**
|
|
|
* 对list数据源将其里面的数据导入到excel表单
|
|
|
- *
|
|
|
+ *
|
|
|
* @param sheetName 工作表的名称
|
|
|
* @param title 标题
|
|
|
* @return 结果
|
|
|
@@ -485,7 +444,7 @@ public class ExcelUtil<T>
|
|
|
|
|
|
/**
|
|
|
* 对list数据源将其里面的数据导入到excel表单
|
|
|
- *
|
|
|
+ *
|
|
|
* @param sheetName 工作表的名称
|
|
|
* @return 结果
|
|
|
*/
|
|
|
@@ -496,7 +455,7 @@ public class ExcelUtil<T>
|
|
|
|
|
|
/**
|
|
|
* 对list数据源将其里面的数据导入到excel表单
|
|
|
- *
|
|
|
+ *
|
|
|
* @param sheetName 工作表的名称
|
|
|
* @param title 标题
|
|
|
* @return 结果
|
|
|
@@ -509,9 +468,17 @@ public class ExcelUtil<T>
|
|
|
exportExcel(response);
|
|
|
}
|
|
|
|
|
|
+ public void importTempExcelWithDate(HttpServletResponse response, String sheetName, List<T> list)
|
|
|
+ {
|
|
|
+ response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
|
|
|
+ response.setCharacterEncoding("utf-8");
|
|
|
+ this.init(list, sheetName, StringUtils.EMPTY, Type.EXPORT);
|
|
|
+ exportExcel(response);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 对list数据源将其里面的数据导入到excel表单
|
|
|
- *
|
|
|
+ *
|
|
|
* @return 结果
|
|
|
*/
|
|
|
public void exportExcel(HttpServletResponse response)
|
|
|
@@ -533,7 +500,7 @@ public class ExcelUtil<T>
|
|
|
|
|
|
/**
|
|
|
* 对list数据源将其里面的数据导入到excel表单
|
|
|
- *
|
|
|
+ *
|
|
|
* @return 结果
|
|
|
*/
|
|
|
public AjaxResult exportExcel()
|
|
|
@@ -589,7 +556,7 @@ public class ExcelUtil<T>
|
|
|
|
|
|
/**
|
|
|
* 填充excel数据
|
|
|
- *
|
|
|
+ *
|
|
|
* @param index 序号
|
|
|
* @param row 单元格行
|
|
|
*/
|
|
|
@@ -614,7 +581,7 @@ public class ExcelUtil<T>
|
|
|
|
|
|
/**
|
|
|
* 创建表格样式
|
|
|
- *
|
|
|
+ *
|
|
|
* @param wb 工作薄对象
|
|
|
* @return 样式列表
|
|
|
*/
|
|
|
@@ -706,7 +673,7 @@ public class ExcelUtil<T>
|
|
|
|
|
|
/**
|
|
|
* 设置单元格信息
|
|
|
- *
|
|
|
+ *
|
|
|
* @param value 单元格值
|
|
|
* @param attr 注解相关
|
|
|
* @param cell 单元格信息
|
|
|
@@ -854,7 +821,7 @@ public class ExcelUtil<T>
|
|
|
|
|
|
/**
|
|
|
* 设置 POI XSSFSheet 单元格提示或选择框
|
|
|
- *
|
|
|
+ *
|
|
|
* @param sheet 表单
|
|
|
* @param textlist 下拉框显示的内容
|
|
|
* @param promptContent 提示内容
|
|
|
@@ -891,7 +858,7 @@ public class ExcelUtil<T>
|
|
|
|
|
|
/**
|
|
|
* 解析导出值 0=男,1=女,2=未知
|
|
|
- *
|
|
|
+ *
|
|
|
* @param propertyValue 参数值
|
|
|
* @param converterExp 翻译注解
|
|
|
* @param separator 分隔符
|
|
|
@@ -928,7 +895,7 @@ public class ExcelUtil<T>
|
|
|
|
|
|
/**
|
|
|
* 反向解析值 男=0,女=1,未知=2
|
|
|
- *
|
|
|
+ *
|
|
|
* @param propertyValue 参数值
|
|
|
* @param converterExp 翻译注解
|
|
|
* @param separator 分隔符
|
|
|
@@ -965,7 +932,7 @@ public class ExcelUtil<T>
|
|
|
|
|
|
/**
|
|
|
* 解析字典值
|
|
|
- *
|
|
|
+ *
|
|
|
* @param dictValue 字典值
|
|
|
* @param dictType 字典类型
|
|
|
* @param separator 分隔符
|
|
|
@@ -978,7 +945,7 @@ public class ExcelUtil<T>
|
|
|
|
|
|
/**
|
|
|
* 反向解析值字典值
|
|
|
- *
|
|
|
+ *
|
|
|
* @param dictLabel 字典标签
|
|
|
* @param dictType 字典类型
|
|
|
* @param separator 分隔符
|
|
|
@@ -991,7 +958,7 @@ public class ExcelUtil<T>
|
|
|
|
|
|
/**
|
|
|
* 数据处理器
|
|
|
- *
|
|
|
+ *
|
|
|
* @param value 数据值
|
|
|
* @param excel 数据注解
|
|
|
* @return
|
|
|
@@ -1068,7 +1035,7 @@ public class ExcelUtil<T>
|
|
|
|
|
|
/**
|
|
|
* 获取下载路径
|
|
|
- *
|
|
|
+ *
|
|
|
* @param filename 文件名称
|
|
|
*/
|
|
|
public String getAbsoluteFile(String filename)
|
|
|
@@ -1084,7 +1051,7 @@ public class ExcelUtil<T>
|
|
|
|
|
|
/**
|
|
|
* 获取bean中的属性值
|
|
|
- *
|
|
|
+ *
|
|
|
* @param vo 实体对象
|
|
|
* @param field 字段
|
|
|
* @param excel 注解
|
|
|
@@ -1115,7 +1082,7 @@ public class ExcelUtil<T>
|
|
|
|
|
|
/**
|
|
|
* 以类的属性的get方法方法形式获取值
|
|
|
- *
|
|
|
+ *
|
|
|
* @param o
|
|
|
* @param name
|
|
|
* @return value
|
|
|
@@ -1210,7 +1177,7 @@ public class ExcelUtil<T>
|
|
|
|
|
|
/**
|
|
|
* 创建工作表
|
|
|
- *
|
|
|
+ *
|
|
|
* @param sheetNo sheet数量
|
|
|
* @param index 序号
|
|
|
*/
|
|
|
@@ -1227,7 +1194,7 @@ public class ExcelUtil<T>
|
|
|
|
|
|
/**
|
|
|
* 获取单元格值
|
|
|
- *
|
|
|
+ *
|
|
|
* @param row 获取的行
|
|
|
* @param column 获取单元格列号
|
|
|
* @return 单元格值
|
|
|
@@ -1287,7 +1254,7 @@ public class ExcelUtil<T>
|
|
|
|
|
|
/**
|
|
|
* 判断是否是空行
|
|
|
- *
|
|
|
+ *
|
|
|
* @param row 判断的行
|
|
|
* @return
|
|
|
*/
|
|
|
@@ -1375,7 +1342,7 @@ public class ExcelUtil<T>
|
|
|
|
|
|
/**
|
|
|
* 格式化不同类型的日期对象
|
|
|
- *
|
|
|
+ *
|
|
|
* @param dateFormat 日期格式
|
|
|
* @param val 被格式化的日期对象
|
|
|
* @return 格式化后的日期字符
|