• POI--各种样式的XSSFCellStyle的生成


        //背景色、フォント色、枠線より各種XSSFCellStyleの作成して、cellStyleMapに保存する
        private HashMap<String, XSSFCellStyle> createXssfCellStyle() {
            HashMap<String, XSSFCellStyle> cellStyleMap = new HashMap<>();
    
            XSSFCellStyle xssfCellStyle;
            String mapKey = "";
            XSSFColor[] xssfColorArr = new XSSFColor[bgColorArr.length];
            XSSFFont[] xssfFontArr = new XSSFFont[fontColorArr.length];
            for(int bgColorIndex=0; bgColorIndex<bgColorArr.length; bgColorIndex++) {
                xssfColorArr[bgColorIndex] = createXssfColor(bgColorArr[bgColorIndex]);
            }
            for(int fontColorIndex=0; fontColorIndex<fontColorArr.length; fontColorIndex++) {
                xssfFontArr[fontColorIndex] = createXssfFont(fontColorArr[fontColorIndex]);
            }
    
            for (int bgColorIndex=0; bgColorIndex<bgColorArr.length; bgColorIndex++) {
                for(int fontColorIndex=0; fontColorIndex<fontColorArr.length; fontColorIndex++) {
                    for(int rightBorderNameIndex=0; rightBorderNameIndex<borderNameArr.length; rightBorderNameIndex++ ) {
                        for (int bottomBorderNameIndex=0; bottomBorderNameIndex<borderNameArr.length; bottomBorderNameIndex++ ) {
                            for (int dataFormatIndex=0; dataFormatIndex<dataFormatArr.length; dataFormatIndex++) {
                                for (int wrapTextIndex=0; wrapTextIndex < wrapTextArr.length; wrapTextIndex++) {
                                    xssfCellStyle = wb.createCellStyle();
                                    xssfCellStyle.setFillForegroundColor(xssfColorArr[bgColorIndex]);
                                    xssfCellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
                                    xssfCellStyle.setFont(xssfFontArr[fontColorIndex]);
                                    xssfCellStyle.setBorderTop(BorderStyle.HAIR);
                                    xssfCellStyle.setBorderLeft(BorderStyle.HAIR);
                                    xssfCellStyle.setBorderRight(BorderStyle.valueOf(borderNameArr[rightBorderNameIndex]));
                                    xssfCellStyle.setBorderBottom(BorderStyle.valueOf(borderNameArr[bottomBorderNameIndex]));
                                    xssfCellStyle.setDataFormat(dataFormatArr[dataFormatIndex]);
                                    xssfCellStyle.setWrapText(wrapTextArr[wrapTextIndex]);
    
                                    //right border name(MEDIUMやHAIR) + bottom border name(MEDIUMやHAIR) + font color(000000など) + background color (ffffffなど)
                                    mapKey = borderNameArr[rightBorderNameIndex]
                                            + borderNameArr[bottomBorderNameIndex]
                                            + fontColorArr[fontColorIndex]
                                            + bgColorArr[bgColorIndex]
                                            + dataFormatArr[dataFormatIndex]
                                            + wrapTextKeyArr[wrapTextIndex];
                                    cellStyleMap.put(mapKey, xssfCellStyle);
                                }
    
                            }
    
                        }
                    }
                }
            }
            return cellStyleMap;
        }
    
        //右枠線のNAME、下枠線のNAME、フォント色、背景色より、合っているXSSFCellStyleを取得
        private XSSFCellStyle getXssfCellStyle(String rightBorderName, String bottomBorderName, String fontColor, String bgColor, int dataFormat, boolean isWrapped ) {
            String wrapTextKey = WRAP_TEXT_KEY_FALSE;
            if (isWrapped) {
                wrapTextKey = WRAP_TEXT_KEY_TRUE;
            }
            String mapKey = rightBorderName + bottomBorderName + fontColor + bgColor + dataFormat + wrapTextKey;
            if (!xssfCellStyleMap.containsKey(mapKey)) {
            }
            return xssfCellStyleMap.get(mapKey);
        }
    

      

  • 相关阅读:
    tp5使用外部类的三种方法
    thinkphp5中php7中运行会出现No input file specified. 这个你改个东西
    21.Yii2.0框架多表关联一对多查询之性能优化--模型的使用
    20.Yii2.0框架多表关联一对多查询之hasMany
    19.Yii2.0框架模型删除记录
    18.Yii2.0框架模型修改记录 和 修改点击量
    17.Yii2.0框架模型添加记录
    15.Yii2.0框架where单表查询
    14-15.Yii2.0模型的创建/读取数据使用,框架防止sql注入
    12.Yii2.0框架视图模版继承与模版相互调用
  • 原文地址:https://www.cnblogs.com/gaoBlog/p/10724989.html
Copyright © 2020-2023  润新知