| | |
| | | import com.alibaba.excel.EasyExcel; |
| | | import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; |
| | | import com.ruoyi.common.convert.ExcelBigNumberConvert; |
| | | import com.ruoyi.common.utils.DictUtils; |
| | | import com.ruoyi.common.excel.DefaultExcelListener; |
| | | import com.ruoyi.common.excel.ExcelListener; |
| | | import com.ruoyi.common.excel.ExcelResult; |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import com.ruoyi.common.utils.file.FileUtils; |
| | | |
| | |
| | | public class ExcelUtil { |
| | | |
| | | /** |
| | | * 对excel表单默认第一个索引名转换成list(EasyExcel) |
| | | * 同步导入(适用于小数据量) |
| | | * |
| | | * @param is 输入流 |
| | | * @return 转换后集合 |
| | |
| | | return EasyExcel.read(is).head(clazz).autoCloseStream(false).sheet().doReadSync(); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 对list数据源将其里面的数据导入到excel表单(EasyExcel) |
| | | * 使用校验监听器 异步导入 同步返回 |
| | | * |
| | | * @param is 输入流 |
| | | * @param clazz 对象类型 |
| | | * @param isValidate 是否 Validator 检验 默认为是 |
| | | * @return 转换后集合 |
| | | */ |
| | | public static <T> ExcelResult<T> importExcel(InputStream is, Class<T> clazz, boolean isValidate) { |
| | | DefaultExcelListener<T> listener = new DefaultExcelListener<>(isValidate); |
| | | EasyExcel.read(is, clazz, listener).sheet().doRead(); |
| | | return listener.getExcelResult(); |
| | | } |
| | | |
| | | /** |
| | | * 使用自定义监听器 异步导入 自定义返回 |
| | | * |
| | | * @param is 输入流 |
| | | * @param clazz 对象类型 |
| | | * @param listener 自定义监听器 |
| | | * @return 转换后集合 |
| | | */ |
| | | public static <T> ExcelResult<T> importExcel(InputStream is, Class<T> clazz, ExcelListener<T> listener) { |
| | | EasyExcel.read(is, clazz, listener).sheet().doRead(); |
| | | return listener.getExcelResult(); |
| | | } |
| | | |
| | | /** |
| | | * 导出excel |
| | | * |
| | | * @param list 导出数据集合 |
| | | * @param sheetName 工作表的名称 |
| | |
| | | } |
| | | } |
| | | return StringUtils.stripEnd(propertyString.toString(), separator); |
| | | } |
| | | |
| | | /** |
| | | * 解析字典值 |
| | | * |
| | | * @param dictValue 字典值 |
| | | * @param dictType 字典类型 |
| | | * @param separator 分隔符 |
| | | * @return 字典标签 |
| | | */ |
| | | public static String convertDictByExp(String dictValue, String dictType, String separator) { |
| | | return DictUtils.getDictLabel(dictType, dictValue, separator); |
| | | } |
| | | |
| | | /** |
| | | * 反向解析值字典值 |
| | | * |
| | | * @param dictLabel 字典标签 |
| | | * @param dictType 字典类型 |
| | | * @param separator 分隔符 |
| | | * @return 字典值 |
| | | */ |
| | | public static String reverseDictByExp(String dictLabel, String dictType, String separator) { |
| | | return DictUtils.getDictValue(dictType, dictLabel, separator); |
| | | } |
| | | |
| | | /** |