当前位置: 首页 > 知识库问答 >
问题:

如何使用java和Apache POI库覆盖excel文件中的单元格样式?

祁默
2023-03-14

我正在使用java和Apache POI库对input.xlsx文件进行excel验证。

public static CellStyle getNewCellStyle(){
    CellStyle style = myWorkBook.createCellStyle();
    style.setFillBackgroundColor(IndexedColors.GREEN.getIndex());
    style.setFillPattern(CellStyle.ALIGN_FILL); 
    return style;
}


public static void chCaseNumberColumnValidation(Cell cell){
    String cellData = getCellDataValue(cell);
    if(cellData.length() == 10){
        if(cellData.equals("BLANK") || cellData.trim().length() == 0){
            System.out.println("BLANK CELL:   " + cell.getRowIndex() + "," + cell.getColumnIndex());
        }

        if(cellData.charAt(0) != '5'){
            System.out.println("DON't START WITH 5:    " + cell.getRowIndex() + "," + cell.getColumnIndex());
            cell.setCellStyle(getNewCellStyle());
        }
    }
    else{
        System.out.println("****INVALID SIZE   " + cell.getRowIndex() + "," + cell.getColumnIndex());

    }

}

共有1个答案

益稳
2023-03-14

粘贴Apache POI Developer Guide中设置颜色的示例

填充和颜色

Workbook wb = new XSSFWorkbook();
Sheet sheet = wb.createSheet("new sheet");

// Create a row and put some cells in it. Rows are 0 based.
Row row = sheet.createRow((short) 1);

// Aqua background
CellStyle style = wb.createCellStyle();
style.setFillBackgroundColor(IndexedColors.AQUA.getIndex());
style.setFillPattern(CellStyle.BIG_SPOTS);
Cell cell = row.createCell((short) 1);
cell.setCellValue("X");
cell.setCellStyle(style);

// Orange "foreground", foreground being the fill foreground not the font color.
style = wb.createCellStyle();
style.setFillForegroundColor(IndexedColors.ORANGE.getIndex());
style.setFillPattern(CellStyle.SOLID_FOREGROUND);
cell = row.createCell((short) 2);
cell.setCellValue("X");
cell.setCellStyle(style);

// Write the output to a file
FileOutputStream fileOut = new FileOutputStream("workbook.xls");
wb.write(fileOut);
fileOut.close();
 类似资料:
  • 我正在使用Poi.jar从excel表输入,想知道如何检查单元格是否为空。 现在我使用下面的代码。

  • 我有一个预定义的excel文件,这是一种形式,其中大部分的信息已经提到,但我必须只输入姓名,地址等细节从我的应用程序用Java。 我可以存储单元格(如A12、B20等),并使用Apache POI库和方法轻松地更新这些单元格。但我希望它是动态的。例如,如果用户将名称单元格从A12更改为B12,Java代码不应该被修改。

  • 在谷歌搜索StackOverflow之后,我还没有找到与这个问题相关的地方。目前我可以将空白单元格读取为空,但一次只能读取一个单元格。所以我必须写这样的东西: 这对我来说不太好,因为我对重复感到不满。我们可以设置返回?

  • 我试图用Java(Apache POI)更新一个现有excel文件中的空单元格,这是我写的代码,我没有得到任何错误,值也没有改变。 谢谢:)

  • 问题内容: 使用的文档/例子的覆盖材料UI造型与风格的成分,我已经成功地风格内的根源,“更深层次的元素” 和。 但是,当我使用相同的技术返回传递给的函数的覆盖时,DOM中的移动以及整个移动将不再正确呈现。 所应用的技术(在容器上按预期工作): 和朋友的典型DOM(缩写为类名): 当我将上述技术应用于时的DOM : 为了完整起见,这是我正在做的事情的最小复制,它会触发DOM切换: 我的JSX是标准设

  • 我正在写一个程序,它需要从excel文件中读取和写入数据,而不考虑格式(xls或xlsx)。 我知道ApachePOI,但它似乎有不同的类来处理xls文件(HSSF)和xlsx(XSSF)文件。 任何人都知道我将如何实现我在这里的目标。(也欢迎使用POI以外的API的想法)。