文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

EasyExcel设置表格样式

2023-09-05 21:16

关注

工具类

package com.alibaba.excel.write.style;import java.util.List;import com.alibaba.excel.metadata.data.WriteCellData;import com.alibaba.excel.util.ListUtils;import com.alibaba.excel.write.handler.context.CellWriteHandlerContext;import com.alibaba.excel.write.metadata.style.WriteCellStyle;import lombok.EqualsAndHashCode;import lombok.Getter;import lombok.Setter;import org.apache.commons.collections4.CollectionUtils;@Getter@Setter@EqualsAndHashCodepublic class HorizontalCellStyleStrategy extends AbstractCellStyleStrategy {    private WriteCellStyle headWriteCellStyle;    private List contentWriteCellStyleList;    public HorizontalCellStyleStrategy() {    }    public HorizontalCellStyleStrategy(WriteCellStyle headWriteCellStyle,        List contentWriteCellStyleList) {        this.headWriteCellStyle = headWriteCellStyle;        this.contentWriteCellStyleList = contentWriteCellStyleList;    }    public HorizontalCellStyleStrategy(WriteCellStyle headWriteCellStyle, WriteCellStyle contentWriteCellStyle) {        this.headWriteCellStyle = headWriteCellStyle;        if (contentWriteCellStyle != null) {            this.contentWriteCellStyleList = ListUtils.newArrayList(contentWriteCellStyle);        }    }    @Override    protected void setHeadCellStyle(CellWriteHandlerContext context) {        if (stopProcessing(context) || headWriteCellStyle == null) {            return;        }        WriteCellData cellData = context.getFirstCellData();        WriteCellStyle.merge(headWriteCellStyle, cellData.getOrCreateStyle());    }    @Override    protected void setContentCellStyle(CellWriteHandlerContext context) {        if (stopProcessing(context) || CollectionUtils.isEmpty(contentWriteCellStyleList)) {            return;        }        WriteCellData cellData = context.getFirstCellData();        if (context.getRelativeRowIndex() == null || context.getRelativeRowIndex() <= 0) {            WriteCellStyle.merge(contentWriteCellStyleList.get(0), cellData.getOrCreateStyle());        } else {            WriteCellStyle.merge(                contentWriteCellStyleList.get(context.getRelativeRowIndex() % contentWriteCellStyleList.size()),                cellData.getOrCreateStyle());        }    }    protected boolean stopProcessing(CellWriteHandlerContext context) {        return context.getFirstCellData() == null;    }}
package com.bytz.modules.cms.statistics.excel;import com.alibaba.excel.write.metadata.style.WriteCellStyle;import com.alibaba.excel.write.metadata.style.WriteFont;import org.apache.poi.ss.usermodel.*;public class StyleUtils {        public static WriteCellStyle getHeadStyle(){        // 头的策略        WriteCellStyle headWriteCellStyle = new WriteCellStyle();        // 背景颜色//        headWriteCellStyle.setFillForegroundColor(IndexedColors.LIGHT_TURQUOISE1.getIndex());//        headWriteCellStyle.setFillPatternType(FillPatternType.SOLID_FOREGROUND);        // 字体        WriteFont headWriteFont = new WriteFont();        headWriteFont.setFontName("宋体");//设置字体名字        headWriteFont.setFontHeightInPoints((short)14);//设置字体大小        headWriteFont.setBold(true);//字体加粗        headWriteCellStyle.setWriteFont(headWriteFont); //在样式用应用设置的字体;        // 样式        headWriteCellStyle.setBorderBottom(BorderStyle.THIN);//设置底边框;        headWriteCellStyle.setBottomBorderColor((short) 0);//设置底边框颜色;        headWriteCellStyle.setBorderLeft(BorderStyle.THIN);  //设置左边框;        headWriteCellStyle.setLeftBorderColor((short) 0);//设置左边框颜色;        headWriteCellStyle.setBorderRight(BorderStyle.THIN);//设置右边框;        headWriteCellStyle.setRightBorderColor((short) 0);//设置右边框颜色;        headWriteCellStyle.setBorderTop(BorderStyle.THIN);//设置顶边框;        headWriteCellStyle.setTopBorderColor((short) 0); //设置顶边框颜色;        headWriteCellStyle.setWrapped(true);  //设置自动换行;        headWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);//设置水平对齐的样式为居中对齐;        headWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);  //设置垂直对齐的样式为居中对齐;        headWriteCellStyle.setShrinkToFit(true);//设置文本收缩至合适        return headWriteCellStyle;    }        public static WriteCellStyle getContentStyle(){        // 内容的策略        WriteCellStyle contentWriteCellStyle = new WriteCellStyle();        // 背景绿色        // 这里需要指定 FillPatternType 为FillPatternType.SOLID_FOREGROUND 不然无法显示背景颜色.头默认了 FillPatternType所以可以不指定//        contentWriteCellStyle.setFillForegroundColor(IndexedColors.PALE_BLUE.getIndex());//        contentWriteCellStyle.setFillPatternType(FillPatternType.SOLID_FOREGROUND);        // 设置字体        WriteFont contentWriteFont = new WriteFont();        contentWriteFont.setFontHeightInPoints((short) 12);//设置字体大小        contentWriteFont.setFontName("宋体"); //设置字体名字        contentWriteCellStyle.setWriteFont(contentWriteFont);//在样式用应用设置的字体;        //设置样式;        contentWriteCellStyle.setBorderBottom(BorderStyle.THIN);//设置底边框;        contentWriteCellStyle.setBottomBorderColor((short) 0);//设置底边框颜色;        contentWriteCellStyle.setBorderLeft(BorderStyle.THIN);  //设置左边框;        contentWriteCellStyle.setLeftBorderColor((short) 0);//设置左边框颜色;        contentWriteCellStyle.setBorderRight(BorderStyle.THIN);//设置右边框;        contentWriteCellStyle.setRightBorderColor((short) 0);//设置右边框颜色;        contentWriteCellStyle.setBorderTop(BorderStyle.THIN);//设置顶边框;        contentWriteCellStyle.setTopBorderColor((short) 0); ///设置顶边框颜色;        contentWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);// 水平居中        contentWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);// 垂直居中        contentWriteCellStyle.setWrapped(true); //设置自动换行;//        contentWriteCellStyle.setShrinkToFit(true);//设置文本收缩至合适        return contentWriteCellStyle;    }}

使用

        // 设置单元格样式        HorizontalCellStyleStrategy horizontalCellStyleStrategy =                new HorizontalCellStyleStrategy(StyleUtils.getHeadStyle(), StyleUtils.getContentStyle());        //写入表头        EasyExcel.write(outputStream)                .head(header)                .needHead(true)                .autoCloseStream(true)                .sheet()                .registerWriteHandler(horizontalCellStyleStrategy)                .doWrite(dataList)                ;

主要是文字居中

来源地址:https://blog.csdn.net/weixin_46114883/article/details/129031331

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯