Ver código fonte

[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
pull/143/head
PJ Fanning 5 anos atrás
pai
commit
74adb9c78d

+ 6
- 1
src/java/org/apache/poi/ss/util/CellUtil.java Ver arquivo

@@ -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)) {

+ 19
- 0
src/testcases/org/apache/poi/ss/util/BaseTestCellUtil.java Ver arquivo

@@ -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();
}
}

Carregando…
Cancelar
Salvar