首页 > 其他分享 >使用hutool给excel单元格标黄和添加批注

使用hutool给excel单元格标黄和添加批注

时间:2023-08-16 17:12:38浏览次数:36  
标签:comment 批注 单元格 excel hutool param cell import

package com.yc.cloud.excel.util;

import cn.hutool.poi.excel.ExcelWriter;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFClientAnchor;
import org.apache.poi.xssf.usermodel.XSSFRichTextString;

/**
 * Excel工作类扩展
 *
 * @author wanghuidong
 * 时间: 2022/10/10 18:58
 */
@Slf4j
public class ExcelUtilExt {

    /**
     * 给单元格标黄
     *
     * @param excelWriter excel写对象
     * @param x           列号
     * @param y           行号
     */
    public static void markCellYellow(ExcelWriter excelWriter, int x, int y) {
        Cell cell = excelWriter.getCell(x, y);
        CellStyle cellStyleSrc = cell.getCellStyle();
        //必须新创建单元格样式,直接修改原单元格样式可能影响到其它单元格,因为样式可以复用的
        CellStyle cellStyleDest = excelWriter.createCellStyle(x, y);
        //原单元格样式不为空,先拷贝原单元格样式至新创建的单元格样式
        if (cellStyleSrc != null) {
            cellStyleDest.cloneStyleFrom(cellStyleSrc);
        }
        cellStyleDest.setFillPattern(FillPatternType.SOLID_FOREGROUND);
        cellStyleDest.setFillForegroundColor(IndexedColors.YELLOW.getIndex());
    }

    /**
     * 给Cell添加批注
     *
     * @param cell   单元格
     * @param value  批注内容
     * @param isXlsx 是否是xlsx格式的文档
     */
    public static void addCellComment(Cell cell, String value, boolean isXlsx) {
        Sheet sheet = cell.getSheet();
        cell.removeCellComment();
        Drawing drawing = sheet.createDrawingPatriarch();
        Comment comment;
        if (isXlsx) {
            // 创建批注
            comment = drawing.createCellComment(new XSSFClientAnchor(1, 1, 1, 1, 1, 1, 1, 1));
            // 输入批注信息
            comment.setString(new XSSFRichTextString(value));
            // 将批注添加到单元格对象中
        } else {
            // 创建批注
            comment = drawing.createCellComment(new HSSFClientAnchor(1, 1, 1, 1, (short) 1, 1, (short) 1, 1));
            // 输入批注信息
            comment.setString(new HSSFRichTextString(value));
            // 将批注添加到单元格对象中
        }
        cell.setCellComment(comment);
    }
}

 

标签:comment,批注,单元格,excel,hutool,param,cell,import
From: https://www.cnblogs.com/hdwang/p/17635619.html

相关文章

  • teamcenter rac 开发 卡死 问题 导出excel 文件时
    解决方法:我对比了,芬尼的这个功能,发现那边在tc配置了查看器的属性,首航这边没配置,然后芬妮没有这个bug,代码也是相同的,所以我交实施配置了查看器的属性就可以了 ......
  • 表格JS实现在线Excel的附件上传与下载
    摘要:本文由葡萄城技术团队于博客园原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。前言在本地使用Excel时,经常会有需要在Excel中添加一些附件文件的需求,例如在Excel中附带一些Word,CAD图等等。同样的,类比到Web端,现在很多人......
  • Spring Boot下实现Excel导入导出
    摘要:本文由葡萄城技术团队于51CTO原创并首发。转载请注明出处:[葡萄城官网],葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。前言SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行......
  • com.alibaba.excel.exception.ExcelWriteDataConvertException: Can not find 'Conver
    这个异常是由于使用阿里巴巴的EasyExcel库时,没有找到映射为Map类型的数据转换器所导致的。在使用EasyExcel进行Excel文件读写时,需要指定正确的数据转换器以实现对象与Excel单元格的相互转换。对于Map类型的数据,EasyExcel需要知道如何将Map转换为Excel中的单元格数据,因此需要自定义......
  • Vue+Element导出Excel表格示例
    <template><div@click="exportFn">导出</div></template><script>exportdefault{data(){return{query:{pageIndex:1,//当前页......
  • UnityExcel数据查看以及文件导入
    需要插件EPPlus.dll、Excel.dll///<summary>///读取Excel表并返回一个DataRowCollection对象///</summary>///<paramname="_path">Excel表路径</param>///<paramname="_sheetIndex">读取的Sheet索引。Excel表中是有多个......
  • ABAP EXCEL批导和查看自建表样板
    结果:  内文:  源代码:ZHMRFI017:*&---------------------------------------------------------------------**&ReportZHMRFI017*&*&---------------------------------------------------------------------**&*&*&-------------......
  • # yyds干货盘点 # 盘点一个Python自动化办公的实战案例——批量合并Excel文件(上篇)
    大家好,我是皮皮。一、前言前几天在Python星耀群【维哥】问了一个Python自动化办公处理的问题,一起来看看吧。大佬们好,请教一个Python自动化办公的问题,我有一个文件夹,里边有多个Excel文件,分别是员工8月份绩效表格,每一个表格里边都是固定的两列,分别是日期和绩效得分,如下图所示:现在他想......
  • NET web api 利用NPOI 读取excel
    安装NPOI`[HttpPost("users/upload")]publicasyncTaskUpload(IFormFilefile){if(file==null||file.Length==0)returnthis.BadRequest("文件未来上传");varapi_result=newList<string>();//文件......
  • Luckysheet:一个纯前端的excel在线表格
    最近因为项目要求,需要在页面上添加一个在线编辑excel的功能,因此只能在网上找有没有直接用的插件,最后很幸运的是幸好找到了一个----luckysheet.   这个是从luckysheet官网上找的图片,先看下能用插件做那些效果。  这个是中文官网地址:https://mengshukeji.gitee......