mirror of https://github.com/apache/poi.git
[bug-63268] fix issue where CellUtil.setFont is adding unnecessary styles
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1855806 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
edd1f4c75e
commit
f2d9c1a927
|
@ -84,9 +84,12 @@ public final class CellUtil {
|
|||
FILL_BACKGROUND_COLOR,
|
||||
INDENTION,
|
||||
DATA_FORMAT,
|
||||
FONT,
|
||||
ROTATION
|
||||
)));
|
||||
private static final Set<String> intValues = Collections.unmodifiableSet(
|
||||
new HashSet<>(Arrays.asList(
|
||||
FONT
|
||||
)));
|
||||
private static final Set<String> booleanValues = Collections.unmodifiableSet(
|
||||
new HashSet<>(Arrays.asList(
|
||||
LOCKED,
|
||||
|
@ -369,6 +372,8 @@ public final class CellUtil {
|
|||
for (final String key : src.keySet()) {
|
||||
if (shortValues.contains(key)) {
|
||||
dest.put(key, getShort(src, key));
|
||||
} else if (intValues.contains(key)) {
|
||||
dest.put(key, getInt(src, key));
|
||||
} else if (booleanValues.contains(key)) {
|
||||
dest.put(key, getBoolean(src, key));
|
||||
} else if (borderTypeValues.contains(key)) {
|
||||
|
|
|
@ -378,4 +378,23 @@ public abstract class BaseTestCellUtil {
|
|||
|
||||
wb1.close();
|
||||
}
|
||||
|
||||
/**
|
||||
* bug 63268
|
||||
* @since POI 4.1.0
|
||||
*/
|
||||
@Test
|
||||
public void setFontShouldNotCreateDuplicateStyle() throws IOException {
|
||||
Workbook wb1 = _testDataProvider.createWorkbook();
|
||||
Cell c = wb1.createSheet().createRow(1).createCell(1);
|
||||
Font f = wb1.createFont();
|
||||
|
||||
CellUtil.setFont(c, f);
|
||||
int num1 = wb1.getNumCellStyles();
|
||||
|
||||
CellUtil.setFont(c, f);
|
||||
int num2 = wb1.getNumCellStyles();
|
||||
assertEquals(num1, num2);
|
||||
wb1.close();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue