【发布时间】:2015-07-29 19:44:54
【问题描述】:
我必须比较两个不同的 excel 文件,并且在 HSSFConditionalFormattingRule 方法正常工作时,我不断从 XSSFConditionalFormattingRule 方法获取 0 或 null 值。
这是 .xls 和 .xlsx 文件的结果(两者具有相同的条件格式)。
2. CONDITIONAL FORMATTING DIFFERENCES
FORMULA1:
Sheet1(0) Rule 0 IS: SHOULD BE: IF(INT(COUNT($C$1:$C$7)*13%)>0,LARGE($C$1:$C$7,INT(COUNT($C$1:$C$7)*13%)),MAX($C$1:$C$7))<=A1
BCOLOR:
Sheet1(0) Rule 0 IS: 0 SHOULD BE: 20
UNDERLINE:
Sheet1(0) Rule 0 IS: 0 SHOULD BE: 255
Sheet1(0) Rule 0 IS: 0 SHOULD BE: 255
Sheet1(0) Rule 1 IS: 0 SHOULD BE: 255
LCOLOR:
Sheet1(0) Rule 0 IS: 0 SHOULD BE: 20
FOREGROUND:
Sheet1(0) Rule 0 IS: 0 SHOULD BE: 64
Sheet1(0) Rule 0 IS: 0 SHOULD BE: 64
Sheet1(0) Rule 1 IS: 0 SHOULD BE: 64
TYPE:
Sheet1(0) Rule 0 IS: 0 SHOULD BE: 2
ESCAPMENT TYPE:
Sheet1(0) Rule 0 IS: 0 SHOULD BE: -1
Sheet1(0) Rule 0 IS: 0 SHOULD BE: -1
Sheet1(0) Rule 1 IS: 0 SHOULD BE: -1
TCOLOR:
Sheet1(0) Rule 0 IS: 0 SHOULD BE: 20
BACKCOLOR:
Sheet1(0) Rule 0 IS: 0 SHOULD BE: 45
Sheet1(0) Rule 0 IS: 0 SHOULD BE: 43
Sheet1(0) Rule 1 IS: 0 SHOULD BE: 43
FONT COLOR:
Sheet1(0) Rule 0 IS: 0 SHOULD BE: 20
Sheet1(0) Rule 0 IS: 0 SHOULD BE: 60
Sheet1(0) Rule 1 IS: 0 SHOULD BE: 60
RCOLOR:
Sheet1(0) Rule 0 IS: 0 SHOULD BE: 20
【问题讨论】:
-
您尝试使用哪个版本的 Apache POI?
-
你是如何获取颜色的?
-
我一直在尝试 POI 3.10 - 3.12
rule.getPatternFormatting().getFillBackgroundColor();我没有找到任何其他方法。我知道它只是一个索引,在 excel 2003 和 2007 中有不同的调色板,但它不应该一直返回 0。
标签: java excel apache-poi conditional-formatting xssf