• poi给Excel单元格添加背景色,批注,下拉值


    poi依赖:

    <dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>3.17</version>
    </dependency>
    <dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>3.17</version>
    </dependency>

    添加背景色:

    依次创建工作表--工作簿--行--单元格
    XSSFWorkbook workbook = new XSSFWorkbook();
    XSSFSheet sheet = workbook.createSheet("sheet1");
    XSSFRow row = sheet.createRow(0);
    XSSFCell cell = row.createCell(i);
    创建样式对象,并设置背景(注意是foreground,不是background,两者是相反的)黄色,且是实心
    XSSFCellStyle cellStyle = workbook.createCellStyle();
    cellStyle.setFillForegroundColor(IndexedColors.YELLOW.getIndex());
    cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
    设置样式
    cell.setCellStyle(cellStyle);

    添加批注:

    依次创建工作表--工作簿--行--单元格
    XSSFWorkbook workbook = new XSSFWorkbook();
    XSSFSheet sheet = workbook.createSheet("sheet1");
    XSSFRow row = sheet.createRow(0);
    XSSFCell cell = row.createCell(i);
    依次创建画布--锚点--批注--设置批注内容
    XSSFDrawing drawingPatriarch = sheet.createDrawingPatriarch(); //画布(注意批注是一种图形,所以要用画布)
    XSSFClientAnchor xSSFClientAnchor = new XSSFClientAnchor(0, 0, 0, 0, 1, 0, 4, 4); //锚点,确定批注的位置(8个参数中:后4个是根据单元格定位,前4个是根据后4个定好的位置再按像素微调)
    XSSFComment cellComment = drawingPatriarch.createCellComment(xSSFClientAnchor); // 在锚点位置创建批注
    cellComment.setString("批注内容"); // 设置批注内容
    设置样式
    cell.setCellStyle(cellStyle);
    特别注意: 每个批注都是一个独立的画布,所以如果多个单元格都需要批注时,要为每一个批注都创建一套"画布,锚点,批注".

    添加下拉值:

    DataValidationHelper dataValidationHelper = sheet.getDataValidationHelper();
    // 构造带下拉列表约束的下拉框
    DataValidationConstraint constraint = dataValidationHelper.createExplicitListConstraint(new String[]{"A","B","C","D"}); // 下拉值:A,B,C,D
    // 划定需要下拉的区域
    CellRangeAddressList cellRangeAddressList = new CellRangeAddressList(0, 1000, 0, 0); // 0-1000行,0-0列
    // 绑定下拉框和区域,构造数据验证对象
    DataValidation validation = dataValidationHelper.createValidation(constraint, cellRangeAddressList);
    // 为sheet添加此验证对象
    sheet.addValidationData(validation);

    总结:

    1. 使用POI可以在Java代码中操作Excel任意功能,同理在WORD,PPT中也可用

    2. 批注需要一个独立的画布,所以对于每个批注都要创建一个画布

  • 相关阅读:
    HeadFirst设计模式C++实现-AbstractFactory模式
    Head First设计模式C++实现Singleton模式
    系统程序员成长计划动态数组(三)(上)
    一种OPENSSL_Uplink(100F2010,05): no OPENSSL_Applink解决方法
    系统程序员成长计划动态数组(四)
    Head First设计模式C++实现Command模式
    EJB>事务管理服务 小强斋
    EJB>事务管理服务 小强斋
    EJB>实体继承 小强斋
    EJB>事务管理服务 小强斋
  • 原文地址:https://www.cnblogs.com/wangxuejian/p/13660688.html
Copyright © 2020-2023  润新知