如何使用Java代码使用HSSF应用单元格背景色

如何使用Java代码使用HSSF应用单元格背景色,java,excel,automation,apache-poi,Java,Excel,Automation,Apache Poi,我试图根据测试用例执行状态设置单元格背景颜色的格式,比如如果测试用例通过,那么单元格背景应该变成绿色,文本颜色应该是白色 同样,对于失败的测试用例,单元格背景颜色:红色和文本颜色:白色 为此,我尝试了以下脚本 背景: HSSFCellStyle style = wBook.createCellStyle() style.setFillBackgroundColor(IndexedColors.GREEN.getIndex()) HSSFFont font = wBook.createFont(

我试图根据测试用例执行状态设置单元格背景颜色的格式,比如如果测试用例通过,那么单元格背景应该变成绿色,文本颜色应该是白色

同样,对于失败的测试用例,单元格背景颜色:红色和文本颜色:白色

为此,我尝试了以下脚本

背景:

HSSFCellStyle style = wBook.createCellStyle()
style.setFillBackgroundColor(IndexedColors.GREEN.getIndex())
HSSFFont font = wBook.createFont()
font.setColor(HSSFColor.WHITE.index)
style.setFont(font)
resultCell.setCellStyle(style)
前景:

HSSFCellStyle style = wBook.createCellStyle()
style.setFillBackgroundColor(IndexedColors.GREEN.getIndex())
HSSFFont font = wBook.createFont()
font.setColor(HSSFColor.WHITE.index)
style.setFont(font)
resultCell.setCellStyle(style)
但是在执行测试用例之后,单元格背景不应用,而前台只应用

仅供参考:我正在使用Excel版本.XLS

有人给出了应用单元格背景的正确方法吗


谢谢

你在摆弄错误的东西。Excel的单元格填充是模式填充。填充背景色是图案后面的颜色,填充前景色是图案的颜色

因此,如果设置
setFillBackgroundColor
,则设置图案后面的颜色,只有图案有间隙且不是实心时,该颜色才可见

通常情况下,单元格是使用
实心\u前景
图案填充的。因此需要图案的颜色,而不是图案背后的颜色

试一试


你在摆弄错误的东西。Excel的单元格填充是模式填充。填充背景色是图案后面的颜色,填充前景色是图案的颜色

因此,如果设置
setFillBackgroundColor
,则设置图案后面的颜色,只有图案有间隙且不是实心时,该颜色才可见

通常情况下,单元格是使用
实心\u前景
图案填充的。因此需要图案的颜色,而不是图案背后的颜色

试一试


它适用于以下几行:

style.setFillForegroundColor(IndexedColors.GREEN.getIndex())
style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND)

它适用于以下几行:

style.setFillForegroundColor(IndexedColors.GREEN.getIndex())
style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND)

通过Groovy脚本执行上述行时获取错误消息。。groovy.lang.MissingMethodException:没有方法签名:org.apache.poi.hssf.usermodel.HSSFCellStyle.setFillPattern()适用于参数类型:(org.apache.poi.ss.usermodel.FillPatternType)值:[SOLID_前台]可能的解决方案:setFillPattern(短),getFillPattern()第行错误:以上问题的答案已发布issue@Karunagara:我的代码使用的是最新稳定版本的apache poi。建议您使用此选项。您应该在问题中提到,您使用的是一个古老版本的
apache-poi
,它是什么。所以这样的误解是可以避免的。谢谢你的回复。我已经接受了您的回答。通过Groovy脚本执行上述行时收到错误消息。。groovy.lang.MissingMethodException:没有方法签名:org.apache.poi.hssf.usermodel.HSSFCellStyle.setFillPattern()适用于参数类型:(org.apache.poi.ss.usermodel.FillPatternType)值:[SOLID_前台]可能的解决方案:setFillPattern(短),getFillPattern()第行错误:以上问题的答案已发布issue@Karunagara:我的代码使用的是最新稳定版本的apache poi。建议您使用此选项。您应该在问题中提到,您使用的是一个古老版本的
apache-poi
,它是什么。所以这样的误解是可以避免的。谢谢你的回复。我已经接受了你的回答。