首页 文章

使用apache poi添加用于创建excel的填充效果

提问于
浏览
0
XSSFCellStyle xssfCellStyle = (XSSFCellStyle) cellStyle;
        xssfCellStyle.setFillForegroundColor(new XSSFColor(color));
        xssfCellStyle.setFillPattern(XSSFCellStyle.DIAMONDS);

嘿,

我能够为我的导出excel设置所有模式样式,我可以从excel中获得,但我如何通过apache poi设置“填充效果...” . 有可能吗?

感谢大家的帮助

PS:图片显示,我的意思是图案样式和填充效果

picture of excel: format cell editor

2 回答

  • 1

    Apache POI目前不支持高级API中的“填充效果...” .

    但是,从规范生成的低级API应该允许设置这些,但您必须自己确定结构,或者基于MS文档的规范,或者通过创建一个小的示例电子表格并查看文件中的文件 xl\styles.xml . xlsx(实际上是一个简单的zip文件!) .

    那么类似下面的内容应该允许你构建所需的xml结构,实际调用ctGradienFill取决于你想要的填充类型:

    final CellStyle cellStyle = wb.createCellStyle();
            //cellStyle.setFillPattern(FillPatternType.ALT_BARS);
    
            XSSFCellFill fill = new XSSFCellFill(CTFill.Factory.newInstance());
            final CTGradientFill ctGradientFill = fill.getCTFill().addNewGradientFill();
            ctGradientFill.setDegree(45);
            // ...
            ((XSSFWorkbook)wb).getStylesSource().putFill(fill);
    
            cell.setCellStyle(cellStyle);
    

    Note: 您将需要http://poi.apache.org/faq.html#faq-N10025中描述的完整schema-jar来获取额外的CTGradientFill类 .

  • 0

    gradient-fill-example

    在理解了xml结构之后,这有很大的帮助:)

相关问题