mirror of https://github.com/apache/poi.git
Pull up one more test into BaseTestConditionalFormatting
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1768590 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
851a171915
commit
f9f7fe9740
|
@ -23,10 +23,8 @@ import static org.junit.Assert.*;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
import org.apache.poi.hssf.HSSFITestDataProvider;
|
import org.apache.poi.hssf.HSSFITestDataProvider;
|
||||||
import org.apache.poi.hssf.HSSFTestDataSamples;
|
|
||||||
import org.apache.poi.hssf.util.HSSFColor;
|
import org.apache.poi.hssf.util.HSSFColor;
|
||||||
import org.apache.poi.ss.usermodel.*;
|
import org.apache.poi.ss.usermodel.*;
|
||||||
import org.apache.poi.ss.util.CellRangeAddress;
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -121,97 +119,4 @@ public final class TestHSSFConditionalFormatting extends BaseTestConditionalForm
|
||||||
assertNotNull(wbBack);
|
assertNotNull(wbBack);
|
||||||
wbBack.close();
|
wbBack.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
|
||||||
@Test
|
|
||||||
public void test52122() throws Exception {
|
|
||||||
Workbook workbook = new HSSFWorkbook();
|
|
||||||
Sheet sheet = workbook.createSheet("Conditional Formatting Test");
|
|
||||||
sheet.setColumnWidth(0, 256 * 10);
|
|
||||||
sheet.setColumnWidth(1, 256 * 10);
|
|
||||||
sheet.setColumnWidth(2, 256 * 10);
|
|
||||||
|
|
||||||
// Create some content.
|
|
||||||
// row 0
|
|
||||||
Row row = sheet.createRow(0);
|
|
||||||
|
|
||||||
Cell cell0 = row.createCell(0);
|
|
||||||
cell0.setCellType(CellType.NUMERIC);
|
|
||||||
cell0.setCellValue(100);
|
|
||||||
|
|
||||||
Cell cell1 = row.createCell(1);
|
|
||||||
cell1.setCellType(CellType.NUMERIC);
|
|
||||||
cell1.setCellValue(120);
|
|
||||||
|
|
||||||
Cell cell2 = row.createCell(2);
|
|
||||||
cell2.setCellType(CellType.NUMERIC);
|
|
||||||
cell2.setCellValue(130);
|
|
||||||
|
|
||||||
// row 1
|
|
||||||
row = sheet.createRow(1);
|
|
||||||
|
|
||||||
cell0 = row.createCell(0);
|
|
||||||
cell0.setCellType(CellType.NUMERIC);
|
|
||||||
cell0.setCellValue(200);
|
|
||||||
|
|
||||||
cell1 = row.createCell(1);
|
|
||||||
cell1.setCellType(CellType.NUMERIC);
|
|
||||||
cell1.setCellValue(220);
|
|
||||||
|
|
||||||
cell2 = row.createCell(2);
|
|
||||||
cell2.setCellType(CellType.NUMERIC);
|
|
||||||
cell2.setCellValue(230);
|
|
||||||
|
|
||||||
// row 2
|
|
||||||
row = sheet.createRow(2);
|
|
||||||
|
|
||||||
cell0 = row.createCell(0);
|
|
||||||
cell0.setCellType(CellType.NUMERIC);
|
|
||||||
cell0.setCellValue(300);
|
|
||||||
|
|
||||||
cell1 = row.createCell(1);
|
|
||||||
cell1.setCellType(CellType.NUMERIC);
|
|
||||||
cell1.setCellValue(320);
|
|
||||||
|
|
||||||
cell2 = row.createCell(2);
|
|
||||||
cell2.setCellType(CellType.NUMERIC);
|
|
||||||
cell2.setCellValue(330);
|
|
||||||
|
|
||||||
// Create conditional formatting, CELL1 should be yellow if CELL0 is not blank.
|
|
||||||
SheetConditionalFormatting formatting = sheet.getSheetConditionalFormatting();
|
|
||||||
|
|
||||||
ConditionalFormattingRule rule = formatting.createConditionalFormattingRule("$A$1>75");
|
|
||||||
|
|
||||||
PatternFormatting pattern = rule.createPatternFormatting();
|
|
||||||
pattern.setFillBackgroundColor(IndexedColors.BLUE.index);
|
|
||||||
pattern.setFillPattern(PatternFormatting.SOLID_FOREGROUND);
|
|
||||||
|
|
||||||
CellRangeAddress[] range = {CellRangeAddress.valueOf("B2:C2")};
|
|
||||||
CellRangeAddress[] range2 = {CellRangeAddress.valueOf("B1:C1")};
|
|
||||||
|
|
||||||
formatting.addConditionalFormatting(range, rule);
|
|
||||||
formatting.addConditionalFormatting(range2, rule);
|
|
||||||
|
|
||||||
// Write file.
|
|
||||||
/*FileOutputStream fos = new FileOutputStream("c:\\temp\\52122_conditional-sheet.xls");
|
|
||||||
try {
|
|
||||||
workbook.write(fos);
|
|
||||||
} finally {
|
|
||||||
fos.close();
|
|
||||||
}*/
|
|
||||||
|
|
||||||
Workbook wbBack = HSSFTestDataSamples.writeOutAndReadBack((HSSFWorkbook)workbook);
|
|
||||||
Sheet sheetBack = wbBack.getSheetAt(0);
|
|
||||||
final SheetConditionalFormatting sheetConditionalFormattingBack = sheetBack.getSheetConditionalFormatting();
|
|
||||||
assertNotNull(sheetConditionalFormattingBack);
|
|
||||||
final ConditionalFormatting formattingBack = sheetConditionalFormattingBack.getConditionalFormattingAt(0);
|
|
||||||
assertNotNull(formattingBack);
|
|
||||||
final ConditionalFormattingRule ruleBack = formattingBack.getRule(0);
|
|
||||||
assertNotNull(ruleBack);
|
|
||||||
final PatternFormatting patternFormattingBack1 = ruleBack.getPatternFormatting();
|
|
||||||
assertNotNull(patternFormattingBack1);
|
|
||||||
assertEquals(IndexedColors.BLUE.index, patternFormattingBack1.getFillBackgroundColor());
|
|
||||||
assertEquals(PatternFormatting.SOLID_FOREGROUND, patternFormattingBack1.getFillPattern());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -409,7 +409,7 @@ public abstract class BaseTestConditionalFormatting {
|
||||||
assertEquals(2, wb.getNumberOfSheets());
|
assertEquals(2, wb.getNumberOfSheets());
|
||||||
} catch (RuntimeException e) {
|
} catch (RuntimeException e) {
|
||||||
if (e.getMessage().indexOf("needs to define a clone method") > 0) {
|
if (e.getMessage().indexOf("needs to define a clone method") > 0) {
|
||||||
fail("Indentified bug 45682");
|
fail("Identified bug 45682");
|
||||||
}
|
}
|
||||||
throw e;
|
throw e;
|
||||||
} finally {
|
} finally {
|
||||||
|
@ -561,10 +561,7 @@ public abstract class BaseTestConditionalFormatting {
|
||||||
public void testReadOffice2007(String filename) throws IOException {
|
public void testReadOffice2007(String filename) throws IOException {
|
||||||
Workbook wb = _testDataProvider.openSampleWorkbook(filename);
|
Workbook wb = _testDataProvider.openSampleWorkbook(filename);
|
||||||
Sheet s = wb.getSheet("CF");
|
Sheet s = wb.getSheet("CF");
|
||||||
ConditionalFormatting cf = null;
|
|
||||||
ConditionalFormattingRule cr = null;
|
|
||||||
|
|
||||||
|
|
||||||
// Sanity check data
|
// Sanity check data
|
||||||
assertEquals("Values", s.getRow(0).getCell(0).toString());
|
assertEquals("Values", s.getRow(0).getCell(0).toString());
|
||||||
assertEquals("10.0", s.getRow(2).getCell(0).toString());
|
assertEquals("10.0", s.getRow(2).getCell(0).toString());
|
||||||
|
@ -578,7 +575,7 @@ public abstract class BaseTestConditionalFormatting {
|
||||||
|
|
||||||
int fCF = 0, fCF12 = 0, fCFEX = 0;
|
int fCF = 0, fCF12 = 0, fCFEX = 0;
|
||||||
for (int i=0; i<sheetCF.getNumConditionalFormattings(); i++) {
|
for (int i=0; i<sheetCF.getNumConditionalFormattings(); i++) {
|
||||||
cf = sheetCF.getConditionalFormattingAt(i);
|
ConditionalFormatting cf = sheetCF.getConditionalFormattingAt(i);
|
||||||
if (cf instanceof HSSFConditionalFormatting) {
|
if (cf instanceof HSSFConditionalFormatting) {
|
||||||
String str = cf.toString();
|
String str = cf.toString();
|
||||||
if (str.contains("[CF]")) fCF++;
|
if (str.contains("[CF]")) fCF++;
|
||||||
|
@ -604,12 +601,12 @@ public abstract class BaseTestConditionalFormatting {
|
||||||
|
|
||||||
|
|
||||||
// Highlight Positive values - Column C
|
// Highlight Positive values - Column C
|
||||||
cf = sheetCF.getConditionalFormattingAt(0);
|
ConditionalFormatting cf = sheetCF.getConditionalFormattingAt(0);
|
||||||
assertEquals(1, cf.getFormattingRanges().length);
|
assertEquals(1, cf.getFormattingRanges().length);
|
||||||
assertEquals("C2:C17", cf.getFormattingRanges()[0].formatAsString());
|
assertEquals("C2:C17", cf.getFormattingRanges()[0].formatAsString());
|
||||||
|
|
||||||
assertEquals(1, cf.getNumberOfRules());
|
assertEquals(1, cf.getNumberOfRules());
|
||||||
cr = cf.getRule(0);
|
ConditionalFormattingRule cr = cf.getRule(0);
|
||||||
assertEquals(ConditionType.CELL_VALUE_IS, cr.getConditionType());
|
assertEquals(ConditionType.CELL_VALUE_IS, cr.getConditionType());
|
||||||
assertEquals(ComparisonOperator.GT, cr.getComparisonOperation());
|
assertEquals(ComparisonOperator.GT, cr.getComparisonOperation());
|
||||||
assertEquals("0", cr.getFormula1());
|
assertEquals("0", cr.getFormula1());
|
||||||
|
@ -1343,4 +1340,97 @@ public abstract class BaseTestConditionalFormatting {
|
||||||
ConditionalFormatting readCf = cf.getConditionalFormattingAt(0);
|
ConditionalFormatting readCf = cf.getConditionalFormattingAt(0);
|
||||||
readCf.setFormattingRanges(null);
|
readCf.setFormattingRanges(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
|
@Test
|
||||||
|
public void test52122() throws Exception {
|
||||||
|
Workbook workbook = _testDataProvider.createWorkbook();
|
||||||
|
Sheet sheet = workbook.createSheet("Conditional Formatting Test");
|
||||||
|
sheet.setColumnWidth(0, 256 * 10);
|
||||||
|
sheet.setColumnWidth(1, 256 * 10);
|
||||||
|
sheet.setColumnWidth(2, 256 * 10);
|
||||||
|
|
||||||
|
// Create some content.
|
||||||
|
// row 0
|
||||||
|
Row row = sheet.createRow(0);
|
||||||
|
|
||||||
|
Cell cell0 = row.createCell(0);
|
||||||
|
cell0.setCellType(CellType.NUMERIC);
|
||||||
|
cell0.setCellValue(100);
|
||||||
|
|
||||||
|
Cell cell1 = row.createCell(1);
|
||||||
|
cell1.setCellType(CellType.NUMERIC);
|
||||||
|
cell1.setCellValue(120);
|
||||||
|
|
||||||
|
Cell cell2 = row.createCell(2);
|
||||||
|
cell2.setCellType(CellType.NUMERIC);
|
||||||
|
cell2.setCellValue(130);
|
||||||
|
|
||||||
|
// row 1
|
||||||
|
row = sheet.createRow(1);
|
||||||
|
|
||||||
|
cell0 = row.createCell(0);
|
||||||
|
cell0.setCellType(CellType.NUMERIC);
|
||||||
|
cell0.setCellValue(200);
|
||||||
|
|
||||||
|
cell1 = row.createCell(1);
|
||||||
|
cell1.setCellType(CellType.NUMERIC);
|
||||||
|
cell1.setCellValue(220);
|
||||||
|
|
||||||
|
cell2 = row.createCell(2);
|
||||||
|
cell2.setCellType(CellType.NUMERIC);
|
||||||
|
cell2.setCellValue(230);
|
||||||
|
|
||||||
|
// row 2
|
||||||
|
row = sheet.createRow(2);
|
||||||
|
|
||||||
|
cell0 = row.createCell(0);
|
||||||
|
cell0.setCellType(CellType.NUMERIC);
|
||||||
|
cell0.setCellValue(300);
|
||||||
|
|
||||||
|
cell1 = row.createCell(1);
|
||||||
|
cell1.setCellType(CellType.NUMERIC);
|
||||||
|
cell1.setCellValue(320);
|
||||||
|
|
||||||
|
cell2 = row.createCell(2);
|
||||||
|
cell2.setCellType(CellType.NUMERIC);
|
||||||
|
cell2.setCellValue(330);
|
||||||
|
|
||||||
|
// Create conditional formatting, CELL1 should be yellow if CELL0 is not blank.
|
||||||
|
SheetConditionalFormatting formatting = sheet.getSheetConditionalFormatting();
|
||||||
|
|
||||||
|
ConditionalFormattingRule rule = formatting.createConditionalFormattingRule("$A$1>75");
|
||||||
|
|
||||||
|
PatternFormatting pattern = rule.createPatternFormatting();
|
||||||
|
pattern.setFillBackgroundColor(IndexedColors.BLUE.index);
|
||||||
|
pattern.setFillPattern(PatternFormatting.SOLID_FOREGROUND);
|
||||||
|
|
||||||
|
CellRangeAddress[] range = {CellRangeAddress.valueOf("B2:C2")};
|
||||||
|
CellRangeAddress[] range2 = {CellRangeAddress.valueOf("B1:C1")};
|
||||||
|
|
||||||
|
formatting.addConditionalFormatting(range, rule);
|
||||||
|
formatting.addConditionalFormatting(range2, rule);
|
||||||
|
|
||||||
|
// Write file.
|
||||||
|
/*FileOutputStream fos = new FileOutputStream("c:\\temp\\52122_conditional-sheet.xls");
|
||||||
|
try {
|
||||||
|
workbook.write(fos);
|
||||||
|
} finally {
|
||||||
|
fos.close();
|
||||||
|
}*/
|
||||||
|
|
||||||
|
Workbook wbBack = _testDataProvider.writeOutAndReadBack(workbook);
|
||||||
|
Sheet sheetBack = wbBack.getSheetAt(0);
|
||||||
|
final SheetConditionalFormatting sheetConditionalFormattingBack = sheetBack.getSheetConditionalFormatting();
|
||||||
|
assertNotNull(sheetConditionalFormattingBack);
|
||||||
|
final ConditionalFormatting formattingBack = sheetConditionalFormattingBack.getConditionalFormattingAt(0);
|
||||||
|
assertNotNull(formattingBack);
|
||||||
|
final ConditionalFormattingRule ruleBack = formattingBack.getRule(0);
|
||||||
|
assertNotNull(ruleBack);
|
||||||
|
final PatternFormatting patternFormattingBack1 = ruleBack.getPatternFormatting();
|
||||||
|
assertNotNull(patternFormattingBack1);
|
||||||
|
assertEquals(IndexedColors.BLUE.index, patternFormattingBack1.getFillBackgroundColor());
|
||||||
|
assertEquals(PatternFormatting.SOLID_FOREGROUND, patternFormattingBack1.getFillPattern());
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue