添加填充效果以使用 apache poi 创建 excel
add fill effects for creating excel with apache poi
XSSFCellStyle xssfCellStyle = (XSSFCellStyle) cellStyle;
xssfCellStyle.setFillForegroundColor(new XSSFColor(color));
xssfCellStyle.setFillPattern(XSSFCellStyle.DIAMONDS);
嘿,
我可以为导出的 excel 设置所有图案样式,我可以从 excel 到达,但是如何通过 apache poi 设置 "Fill Effects..."。有没有可能?
谢谢大家的帮助
PS:如图所示,我说的图案样式和填充效果
picture of excel: format cell editor
Apache POI 目前不支持高级 API 中的 "Fill Effects..."。
但是从规范生成的低级 API 应该允许设置这些东西,但是你必须自己确定结构,要么基于 MS 文档的规范,要么通过创建一个小的示例电子表格并查看 .xlsx 中的文件 xl\styles.xml
(这实际上是一个简单的 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);
注意: 您将需要 http://poi.apache.org/faq.html#faq-N10025 中描述的完整模式 jar 以获得额外的 CTGradientFill class.
在理解了 xml 结构之后,这很有帮助 :)
XSSFCellStyle xssfCellStyle = (XSSFCellStyle) cellStyle;
xssfCellStyle.setFillForegroundColor(new XSSFColor(color));
xssfCellStyle.setFillPattern(XSSFCellStyle.DIAMONDS);
嘿,
我可以为导出的 excel 设置所有图案样式,我可以从 excel 到达,但是如何通过 apache poi 设置 "Fill Effects..."。有没有可能?
谢谢大家的帮助
PS:如图所示,我说的图案样式和填充效果
picture of excel: format cell editor
Apache POI 目前不支持高级 API 中的 "Fill Effects..."。
但是从规范生成的低级 API 应该允许设置这些东西,但是你必须自己确定结构,要么基于 MS 文档的规范,要么通过创建一个小的示例电子表格并查看 .xlsx 中的文件 xl\styles.xml
(这实际上是一个简单的 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);
注意: 您将需要 http://poi.apache.org/faq.html#faq-N10025 中描述的完整模式 jar 以获得额外的 CTGradientFill class.
在理解了 xml 结构之后,这很有帮助 :)