add param that allows invalid colors to be ignored

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1902630 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
PJ Fanning 2022-07-10 12:22:54 +00:00
parent 536537e360
commit 79273a06aa
4 changed files with 51 additions and 17 deletions

View File

@ -832,15 +832,17 @@ public class XSSFCellStyle implements CellStyle, Duplicatable {
/**
* Set the background fill color represented as a {@link org.apache.poi.ss.usermodel.Color} value.
* <br>
* @param color the color to use
* @param color org.apache.poi.ss.usermodel.Color to set
* @param ignoreInvalidColors when set to true, the method will ignore issues like trying to set a
* HSSFColor on a XSSFCellStyle
* @throws IllegalArgumentException if you provide a <code>Color</code> instance that is not a {@link XSSFColor}
* @since POI 5.2.3
*/
@Override
public void setFillBackgroundColor(org.apache.poi.ss.usermodel.Color color) {
public void setFillBackgroundColor(org.apache.poi.ss.usermodel.Color color, boolean ignoreInvalidColors) {
if (color == null || color instanceof XSSFColor) {
setFillBackgroundColor((XSSFColor)color);
} else {
} else if (!ignoreInvalidColors) {
throw new IllegalArgumentException("XSSFCellStyle only accepts XSSFColor instances");
}
}
@ -903,14 +905,16 @@ public class XSSFCellStyle implements CellStyle, Duplicatable {
* Set the foreground fill color represented as a {@link org.apache.poi.ss.usermodel.Color} value.
* <br>
* @param color the color to use
* @param ignoreInvalidColors when set to true, the method will ignore issues like trying to set a
* HSSFColor on a XSSFCellStyle
* @throws IllegalArgumentException if you provide a <code>Color</code> instance that is not a {@link XSSFColor}
* @since POI 5.2.3
*/
@Override
public void setFillForegroundColor(org.apache.poi.ss.usermodel.Color color) {
public void setFillForegroundColor(org.apache.poi.ss.usermodel.Color color, boolean ignoreInvalidColors) {
if (color == null || color instanceof XSSFColor) {
setFillForegroundColor((XSSFColor)color);
} else {
} else if (!ignoreInvalidColors) {
throw new IllegalArgumentException("XSSFCellStyle only accepts XSSFColor instances");
}
}

View File

@ -642,16 +642,18 @@ public final class HSSFCellStyle implements CellStyle, Duplicatable {
* Set the background fill color represented as a {@link org.apache.poi.ss.usermodel.Color} value.
* <br>
* @param color the color to use
* @param ignoreInvalidColors when set to true, the method will ignore issues like trying to set a
* HSSFColor on a XSSFCellStyle
* @throws IllegalArgumentException if you provide a <code>Color</code> instance that is not a {@link HSSFColor}
* @since POI 5.2.3
*/
@Override
public void setFillBackgroundColor(org.apache.poi.ss.usermodel.Color color)
public void setFillBackgroundColor(org.apache.poi.ss.usermodel.Color color, boolean ignoreInvalidColors)
{
if (color instanceof HSSFColor) {
short index2 = ((HSSFColor)color).getIndex2();
if (index2 != -1) setFillBackgroundColor(index2);
} else if (color != null) {
} else if (color != null && !ignoreInvalidColors) {
throw new IllegalArgumentException("HSSFCellStyle only accepts HSSFColor instances");
}
}
@ -701,16 +703,18 @@ public final class HSSFCellStyle implements CellStyle, Duplicatable {
* Set the foreground fill color represented as a {@link org.apache.poi.ss.usermodel.Color} value.
* <br>
* @param color the color to use
* @param ignoreInvalidColors when set to true, the method will ignore issues like trying to set a
* HSSFColor on a XSSFCellStyle
* @throws IllegalArgumentException if you provide a <code>Color</code> instance that is not a {@link HSSFColor}
* @since POI 5.2.3
*/
@Override
public void setFillForegroundColor(org.apache.poi.ss.usermodel.Color color)
public void setFillForegroundColor(org.apache.poi.ss.usermodel.Color color, boolean ignoreInvalidColors)
{
if (color instanceof HSSFColor) {
short index2 = ((HSSFColor)color).getIndex2();
if (index2 != -1) setFillForegroundColor(index2);
} else if (color != null) {
} else if (color != null && !ignoreInvalidColors) {
throw new IllegalArgumentException("HSSFCellStyle only accepts HSSFColor instances");
}
}

View File

@ -312,13 +312,26 @@ public interface CellStyle {
void setFillBackgroundColor(short bg);
/**
* set the background fill color.
* use not a indexed color but a {@link org.apache.poi.ss.usermodel.Color)
* Set the background fill color.
* Uses a {@link org.apache.poi.ss.usermodel.Color} instead of an indexed color.
*
* @param color org.apache.poi.ss.usermodel.Color to set
* @since POI 5.2.3
*/
void setFillBackgroundColor(Color color);
default void setFillBackgroundColor(Color color) {
setFillBackgroundColor(color, false);
}
/**
* Set the background fill color.
* Uses a {@link org.apache.poi.ss.usermodel.Color} instead of an indexed color.
*
* @param color org.apache.poi.ss.usermodel.Color to set
* @param ignoreInvalidColors when set to true, the method will ignore issues like trying to set a
* HSSFColor on a XSSFCellStyle
* @since POI 5.2.3
*/
void setFillBackgroundColor(Color color, boolean ignoreInvalidColors);
/**
* get the background fill color, if the fill
@ -344,13 +357,26 @@ public interface CellStyle {
void setFillForegroundColor(short bg);
/**
* set the foreground fill color.
* use not a indexed color but a {@link org.apache.poi.ss.usermodel.Color)
* Set the foreground fill color.
* Uses a {@link org.apache.poi.ss.usermodel.Color} instead of an indexed color.
*
* @param color org.apache.poi.ss.usermodel.Color to set
* @since POI 5.2.3
*/
void setFillForegroundColor(Color color);
default void setFillForegroundColor(Color color) {
setFillForegroundColor(color, false);
}
/**
* Set the foreground fill color.
* Uses a {@link org.apache.poi.ss.usermodel.Color} instead of an indexed color.
*
* @param color org.apache.poi.ss.usermodel.Color to set
* @param ignoreInvalidColors when set to true, the method will ignore issues like trying to set a
* HSSFColor on a XSSFCellStyle
* @since POI 5.2.3
*/
void setFillForegroundColor(Color color, boolean ignoreInvalidColors);
/**
* get the foreground fill color, if the fill

View File

@ -532,8 +532,8 @@ public final class CellUtil {
style.setFillForegroundColor(getShort(properties, FILL_FOREGROUND_COLOR));
style.setFillBackgroundColor(getShort(properties, FILL_BACKGROUND_COLOR));
style.setFillForegroundColor(getColor(properties, FILL_FOREGROUND_COLOR_COLOR));
style.setFillBackgroundColor(getColor(properties, FILL_BACKGROUND_COLOR_COLOR));
style.setFillForegroundColor(getColor(properties, FILL_FOREGROUND_COLOR_COLOR), true);
style.setFillBackgroundColor(getColor(properties, FILL_BACKGROUND_COLOR_COLOR), true);
style.setFont(workbook.getFontAt(getInt(properties, FONT)));
style.setHidden(getBoolean(properties, HIDDEN));