java使用EasyExcel自定义样式设置使用换行符号“\n“自动换行

1、自定义工具类

/**
 * excel样式工具类
 */
public class StyleUtils {

    public static HorizontalCellStyleStrategy createCenterStyle() {
        //表头策略
        WriteCellStyle headWriteCellStyle = new WriteCellStyle();
        WriteFont headWriteFont = new WriteFont();
        // 表头设置字体大小
        headWriteFont.setFontHeightInPoints((short) 11);
        headWriteFont.setFontName("宋体");
        headWriteCellStyle.setWriteFont(headWriteFont);
        //内部策略
        WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
        contentWriteCellStyle.setWrapped(true); // 设置自动换行
        // 内容字体大小
        WriteFont contentWriteFont = new WriteFont();
        // 内容字体大小
        contentWriteFont.setFontHeightInPoints((short) 11);
        contentWriteFont.setFontName("宋体");
        contentWriteCellStyle.setWriteFont(contentWriteFont);
        //上下居中和水平居中
        // 水平居中
        contentWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
        // 上下居中
        contentWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);

        return new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);
    }
}

2、定义导出对象

@Data
public class User implements Serializable {

    @ExcelProperty("用户名")
    @ColumnWidth(30)
    private String userName;


    @ExcelProperty("创建时间")
    @ColumnWidth(30)
    private LocalDateTime createdTime;
  
}

3、使用方式

@PostMapping("/export")
@ApiOperation(value = "导出", notes = "导出")
public void export(HttpServletResponse response) throws IOException {
	// 设置响应头信息
	String fileName = "导出"+ LocalDateTimeUtil.format(LocalDateTime.now(), DatePattern.PURE_DATETIME_PATTERN)+ ".xlsx";
	response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
	response.setCharacterEncoding("utf-8");
	// 这里 URLEncoder.encode 防止文件名中文乱码
	String encodedFileName = URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20");
	response.setHeader("Content-disposition",encodedFileName);
	//模拟数据
	List<User> userList = new ArrayList<>();
	String userName = "张三"+","+"\n"+"李四";//使用换符合
	User user = new User();
	user.setUserName(userName);
	user.setCreatedTime(LocalDateTime.now());
	userList.add(user);
	
	EasyExcel.write(response.getOutputStream(), User.class)
			.excelType(ExcelTypeEnum.XLSX)
			.sheet("导出记录")
			.registerWriteHandler(StyleUtils.createCenterStyle())//使用自定义的样式
			.doWrite(list);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值