Excel注解支持color字体颜色

feature/model
RuoYi 3 years ago
parent b42a8176ca
commit 328d4b916d

@ -5,6 +5,8 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.math.BigDecimal;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.IndexedColors;
import com.ruoyi.common.utils.poi.ExcelHandlerAdapter;
/**
@ -56,11 +58,6 @@ public @interface Excel
*/
public int roundingMode() default BigDecimal.ROUND_HALF_EVEN;
/**
* 0 1
*/
public ColumnType cellType() default ColumnType.STRING;
/**
* excel
*/
@ -107,9 +104,19 @@ public @interface Excel
public boolean isStatistics() default false;
/**
* 0123
* 0 1
*/
public ColumnType cellType() default ColumnType.STRING;
/**
*
*/
public IndexedColors color() default IndexedColors.BLACK;
/**
*
*/
public Align align() default Align.AUTO;
public HorizontalAlignment align() default HorizontalAlignment.CENTER;
/**
*

@ -672,21 +672,6 @@ public class ExcelUtil<T>
style.setFont(totalFont);
styles.put("total", style);
style = wb.createCellStyle();
style.cloneStyleFrom(styles.get("data"));
style.setAlignment(HorizontalAlignment.LEFT);
styles.put("data1", style);
style = wb.createCellStyle();
style.cloneStyleFrom(styles.get("data"));
style.setAlignment(HorizontalAlignment.CENTER);
styles.put("data2", style);
style = wb.createCellStyle();
style.cloneStyleFrom(styles.get("data"));
style.setAlignment(HorizontalAlignment.RIGHT);
styles.put("data3", style);
return styles;
}
@ -808,8 +793,7 @@ public class ExcelUtil<T>
{
// 创建cell
cell = row.createCell(column);
int align = attr.align().value();
cell.setCellStyle(styles.get("data" + (align >= 1 && align <= 3 ? align : "")));
setDataCell(cell, attr);
// 用于读取对象中的属性
Object value = getTargetValue(vo, field, attr);
@ -852,6 +836,34 @@ public class ExcelUtil<T>
return cell;
}
/**
*
*
* @param cell
* @param excel
*/
public void setDataCell(Cell cell, Excel excel)
{
CellStyle style = wb.createCellStyle();
style.setAlignment(HorizontalAlignment.CENTER);
style.setVerticalAlignment(VerticalAlignment.CENTER);
style.setBorderRight(BorderStyle.THIN);
style.setRightBorderColor(IndexedColors.GREY_50_PERCENT.getIndex());
style.setBorderLeft(BorderStyle.THIN);
style.setLeftBorderColor(IndexedColors.GREY_50_PERCENT.getIndex());
style.setBorderTop(BorderStyle.THIN);
style.setTopBorderColor(IndexedColors.GREY_50_PERCENT.getIndex());
style.setBorderBottom(BorderStyle.THIN);
style.setBottomBorderColor(IndexedColors.GREY_50_PERCENT.getIndex());
style.setAlignment(excel.align());
Font dataFont = wb.createFont();
dataFont.setFontName("Arial");
dataFont.setFontHeightInPoints((short) 10);
dataFont.setColor(excel.color().index);
style.setFont(dataFont);
cell.setCellStyle(style);
}
/**
* POI XSSFSheet
*

Loading…
Cancel
Save