Excel自定义数据处理器增加单元格/工作簿对象
This commit is contained in:
		
							parent
							
								
									128b186b8e
								
							
						
					
					
						commit
						7c9423657e
					
				| 
						 | 
					@ -1,5 +1,8 @@
 | 
				
			||||||
package com.ruoyi.common.utils.poi;
 | 
					package com.ruoyi.common.utils.poi;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.apache.poi.ss.usermodel.Cell;
 | 
				
			||||||
 | 
					import org.apache.poi.ss.usermodel.Workbook;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Excel数据格式处理适配器
 | 
					 * Excel数据格式处理适配器
 | 
				
			||||||
 * 
 | 
					 * 
 | 
				
			||||||
| 
						 | 
					@ -12,8 +15,10 @@ public interface ExcelHandlerAdapter
 | 
				
			||||||
     * 
 | 
					     * 
 | 
				
			||||||
     * @param value 单元格数据值
 | 
					     * @param value 单元格数据值
 | 
				
			||||||
     * @param args excel注解args参数组
 | 
					     * @param args excel注解args参数组
 | 
				
			||||||
 | 
					     * @param cell 单元格对象
 | 
				
			||||||
 | 
					     * @param wb 工作簿对象
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
     * @return 处理后的值
 | 
					     * @return 处理后的值
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    Object format(Object value, String[] args);
 | 
					    Object format(Object value, String[] args, Cell cell, Workbook wb);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -461,7 +461,7 @@ public class ExcelUtil<T>
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        else if (!attr.handler().equals(ExcelHandlerAdapter.class))
 | 
					                        else if (!attr.handler().equals(ExcelHandlerAdapter.class))
 | 
				
			||||||
                        {
 | 
					                        {
 | 
				
			||||||
                            val = dataFormatHandlerAdapter(val, attr);
 | 
					                            val = dataFormatHandlerAdapter(val, attr, null);
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        else if (ColumnType.IMAGE == attr.cellType() && StringUtils.isNotEmpty(pictures))
 | 
					                        else if (ColumnType.IMAGE == attr.cellType() && StringUtils.isNotEmpty(pictures))
 | 
				
			||||||
                        {
 | 
					                        {
 | 
				
			||||||
| 
						 | 
					@ -1052,7 +1052,7 @@ public class ExcelUtil<T>
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                else if (!attr.handler().equals(ExcelHandlerAdapter.class))
 | 
					                else if (!attr.handler().equals(ExcelHandlerAdapter.class))
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    cell.setCellValue(dataFormatHandlerAdapter(value, attr));
 | 
					                    cell.setCellValue(dataFormatHandlerAdapter(value, attr, cell));
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                else
 | 
					                else
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
| 
						 | 
					@ -1265,13 +1265,13 @@ public class ExcelUtil<T>
 | 
				
			||||||
     * @param excel 数据注解
 | 
					     * @param excel 数据注解
 | 
				
			||||||
     * @return
 | 
					     * @return
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public String dataFormatHandlerAdapter(Object value, Excel excel)
 | 
					    public String dataFormatHandlerAdapter(Object value, Excel excel, Cell cell)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        try
 | 
					        try
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            Object instance = excel.handler().newInstance();
 | 
					            Object instance = excel.handler().newInstance();
 | 
				
			||||||
            Method formatMethod = excel.handler().getMethod("format", new Class[] { Object.class, String[].class });
 | 
					            Method formatMethod = excel.handler().getMethod("format", new Class[] { Object.class, String[].class, Cell.class, Workbook.class });
 | 
				
			||||||
            value = formatMethod.invoke(instance, value, excel.args());
 | 
					            value = formatMethod.invoke(instance, value, excel.args(), cell, this.wb);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        catch (Exception e)
 | 
					        catch (Exception e)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue