| | |
| | | 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.domain.Result; |
| | | import com.ruoyi.common.core.text.Convert; |
| | | import com.ruoyi.common.exception.UtilException; |
| | | import com.ruoyi.common.utils.DateUtils; |
| | |
| | | |
| | | /** |
| | | * Excel相关处理 |
| | | * |
| | | * |
| | | * @author ruoyi |
| | | */ |
| | | public class ExcelUtil<T> |
| | |
| | | |
| | | /** |
| | | * 对excel表单默认第一个索引名转换成list |
| | | * |
| | | * |
| | | * @param is 输入流 |
| | | * @return 转换后集合 |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 对excel表单默认第一个索引名转换成list |
| | | * |
| | | * |
| | | * @param is 输入流 |
| | | * @param titleNum 标题占用行数 |
| | | * @return 转换后集合 |
| | |
| | | |
| | | /** |
| | | * 对excel表单指定表格索引名转换成list |
| | | * |
| | | * |
| | | * @param sheetName 表格索引名 |
| | | * @param titleNum 标题占用行数 |
| | | * @param is 输入流 |
| | |
| | | |
| | | /** |
| | | * 对list数据源将其里面的数据导入到excel表单 |
| | | * |
| | | * |
| | | * @param list 导出数据集合 |
| | | * @param sheetName 工作表的名称 |
| | | * @return 结果 |
| | | */ |
| | | public AjaxResult exportExcel(List<T> list, String sheetName) |
| | | public Result exportExcel(List<T> list, String sheetName) |
| | | { |
| | | return exportExcel(list, sheetName, StringUtils.EMPTY); |
| | | } |
| | | |
| | | /** |
| | | * 对list数据源将其里面的数据导入到excel表单 |
| | | * |
| | | * |
| | | * @param list 导出数据集合 |
| | | * @param sheetName 工作表的名称 |
| | | * @param title 标题 |
| | | * @return 结果 |
| | | */ |
| | | public AjaxResult exportExcel(List<T> list, String sheetName, String title) |
| | | public Result exportExcel(List<T> list, String sheetName, String title) |
| | | { |
| | | this.init(list, sheetName, title, Type.EXPORT); |
| | | return exportExcel(); |
| | |
| | | |
| | | /** |
| | | * 对list数据源将其里面的数据导入到excel表单 |
| | | * |
| | | * |
| | | * @param response 返回数据 |
| | | * @param list 导出数据集合 |
| | | * @param sheetName 工作表的名称 |
| | |
| | | |
| | | /** |
| | | * 对list数据源将其里面的数据导入到excel表单 |
| | | * |
| | | * |
| | | * @param response 返回数据 |
| | | * @param list 导出数据集合 |
| | | * @param sheetName 工作表的名称 |
| | |
| | | |
| | | /** |
| | | * 对list数据源将其里面的数据导入到excel表单 |
| | | * |
| | | * |
| | | * @param sheetName 工作表的名称 |
| | | * @return 结果 |
| | | */ |
| | | public AjaxResult importTemplateExcel(String sheetName) |
| | | public Result importTemplateExcel(String sheetName) |
| | | { |
| | | return importTemplateExcel(sheetName, StringUtils.EMPTY); |
| | | } |
| | | |
| | | /** |
| | | * 对list数据源将其里面的数据导入到excel表单 |
| | | * |
| | | * |
| | | * @param sheetName 工作表的名称 |
| | | * @param title 标题 |
| | | * @return 结果 |
| | | */ |
| | | public AjaxResult importTemplateExcel(String sheetName, String title) |
| | | public Result importTemplateExcel(String sheetName, String title) |
| | | { |
| | | this.init(null, sheetName, title, Type.IMPORT); |
| | | return exportExcel(); |
| | |
| | | |
| | | /** |
| | | * 对list数据源将其里面的数据导入到excel表单 |
| | | * |
| | | * |
| | | * @param sheetName 工作表的名称 |
| | | * @return 结果 |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 对list数据源将其里面的数据导入到excel表单 |
| | | * |
| | | * |
| | | * @param sheetName 工作表的名称 |
| | | * @param title 标题 |
| | | * @return 结果 |
| | |
| | | |
| | | /** |
| | | * 对list数据源将其里面的数据导入到excel表单 |
| | | * |
| | | * |
| | | * @return 结果 |
| | | */ |
| | | public void exportExcel(HttpServletResponse response) |
| | |
| | | |
| | | /** |
| | | * 对list数据源将其里面的数据导入到excel表单 |
| | | * |
| | | * |
| | | * @return 结果 |
| | | */ |
| | | public AjaxResult exportExcel() |
| | | public Result exportExcel() |
| | | { |
| | | OutputStream out = null; |
| | | try |
| | |
| | | String filename = encodingFilename(sheetName); |
| | | out = new FileOutputStream(getAbsoluteFile(filename)); |
| | | wb.write(out); |
| | | return AjaxResult.success(filename); |
| | | return Result.success(filename); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | |
| | | |
| | | /** |
| | | * 填充excel数据 |
| | | * |
| | | * |
| | | * @param index 序号 |
| | | * @param row 单元格行 |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 创建表格样式 |
| | | * |
| | | * |
| | | * @param wb 工作薄对象 |
| | | * @return 样式列表 |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 根据Excel注解创建表格头样式 |
| | | * |
| | | * |
| | | * @param wb 工作薄对象 |
| | | * @return 自定义样式列表 |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 根据Excel注解创建表格列样式 |
| | | * |
| | | * |
| | | * @param wb 工作薄对象 |
| | | * @return 自定义样式列表 |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 根据Excel注解创建表格列样式 |
| | | * |
| | | * |
| | | * @param styles 自定义样式列表 |
| | | * @param field 属性列信息 |
| | | * @param excel 注解信息 |
| | |
| | | |
| | | /** |
| | | * 设置单元格信息 |
| | | * |
| | | * |
| | | * @param value 单元格值 |
| | | * @param attr 注解相关 |
| | | * @param cell 单元格信息 |
| | |
| | | |
| | | /** |
| | | * 设置 POI XSSFSheet 单元格提示或选择框 |
| | | * |
| | | * |
| | | * @param sheet 表单 |
| | | * @param textlist 下拉框显示的内容 |
| | | * @param promptContent 提示内容 |
| | |
| | | |
| | | /** |
| | | * 设置某些列的值只能输入预制的数据,显示下拉框(兼容超出一定数量的下拉框). |
| | | * |
| | | * |
| | | * @param sheet 要设置的sheet. |
| | | * @param textlist 下拉框显示的内容 |
| | | * @param promptContent 提示内容 |
| | |
| | | |
| | | /** |
| | | * 解析导出值 0=男,1=女,2=未知 |
| | | * |
| | | * |
| | | * @param propertyValue 参数值 |
| | | * @param converterExp 翻译注解 |
| | | * @param separator 分隔符 |
| | |
| | | |
| | | /** |
| | | * 反向解析值 男=0,女=1,未知=2 |
| | | * |
| | | * |
| | | * @param propertyValue 参数值 |
| | | * @param converterExp 翻译注解 |
| | | * @param separator 分隔符 |
| | |
| | | |
| | | /** |
| | | * 解析字典值 |
| | | * |
| | | * |
| | | * @param dictValue 字典值 |
| | | * @param dictType 字典类型 |
| | | * @param separator 分隔符 |
| | |
| | | |
| | | /** |
| | | * 反向解析值字典值 |
| | | * |
| | | * |
| | | * @param dictLabel 字典标签 |
| | | * @param dictType 字典类型 |
| | | * @param separator 分隔符 |
| | |
| | | |
| | | /** |
| | | * 数据处理器 |
| | | * |
| | | * |
| | | * @param value 数据值 |
| | | * @param excel 数据注解 |
| | | * @return |
| | |
| | | |
| | | /** |
| | | * 获取下载路径 |
| | | * |
| | | * |
| | | * @param filename 文件名称 |
| | | */ |
| | | public String getAbsoluteFile(String filename) |
| | |
| | | |
| | | /** |
| | | * 获取bean中的属性值 |
| | | * |
| | | * |
| | | * @param vo 实体对象 |
| | | * @param field 字段 |
| | | * @param excel 注解 |
| | |
| | | |
| | | /** |
| | | * 以类的属性的get方法方法形式获取值 |
| | | * |
| | | * |
| | | * @param o |
| | | * @param name |
| | | * @return value |
| | |
| | | |
| | | /** |
| | | * 创建工作表 |
| | | * |
| | | * |
| | | * @param sheetNo sheet数量 |
| | | * @param index 序号 |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 获取单元格值 |
| | | * |
| | | * |
| | | * @param row 获取的行 |
| | | * @param column 获取单元格列号 |
| | | * @return 单元格值 |
| | |
| | | |
| | | /** |
| | | * 判断是否是空行 |
| | | * |
| | | * |
| | | * @param row 判断的行 |
| | | * @return |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 格式化不同类型的日期对象 |
| | | * |
| | | * |
| | | * @param dateFormat 日期格式 |
| | | * @param val 被格式化的日期对象 |
| | | * @return 格式化后的日期字符 |
| | |
| | | |
| | | /** |
| | | * 获取对象的子列表方法 |
| | | * |
| | | * |
| | | * @param name 名称 |
| | | * @param pojoClass 类对象 |
| | | * @return 子列表方法 |