public void TestClone() { IWorkbook wb = _testDataProvider.CreateWorkbook(); ISheet sheet = wb.CreateSheet(); String formula = "7"; ISheetConditionalFormatting sheetCF = sheet.SheetConditionalFormatting; IConditionalFormattingRule rule1 = sheetCF.CreateConditionalFormattingRule(formula); IFontFormatting fontFmt = rule1.CreateFontFormatting(); fontFmt.SetFontStyle(true, false); IPatternFormatting patternFmt = rule1.CreatePatternFormatting(); patternFmt.FillBackgroundColor = (/*setter*/ HSSFColor.Yellow.Index); IConditionalFormattingRule rule2 = sheetCF.CreateConditionalFormattingRule(ComparisonOperator.Between, "1", "2"); IConditionalFormattingRule[] cfRules = { rule1, rule2 }; short col = 1; CellRangeAddress[] regions = { new CellRangeAddress(0, 65535, col, col) }; sheetCF.AddConditionalFormatting(regions, cfRules); try { wb.CloneSheet(0); } catch (Exception e) { if (e.Message.IndexOf("needs to define a clone method") > 0) { Assert.Fail("Indentified bug 45682"); } throw e; } Assert.AreEqual(2, wb.NumberOfSheets); }
public void TestCreatePatternFormatting() { IWorkbook workbook = _testDataProvider.CreateWorkbook(); ISheet sheet = workbook.CreateSheet(); ISheetConditionalFormatting sheetCF = sheet.SheetConditionalFormatting; IConditionalFormattingRule rule1 = sheetCF.CreateConditionalFormattingRule(ComparisonOperator.Equal, "7"); IPatternFormatting patternFmt = rule1.CreatePatternFormatting(); Assert.AreEqual(0, patternFmt.FillBackgroundColor); patternFmt.FillBackgroundColor = (/*setter*/ IndexedColors.Red.Index); Assert.AreEqual(IndexedColors.Red.Index, patternFmt.FillBackgroundColor); Assert.AreEqual(0, patternFmt.FillForegroundColor); patternFmt.FillForegroundColor = (/*setter*/ IndexedColors.Blue.Index); Assert.AreEqual(IndexedColors.Blue.Index, patternFmt.FillForegroundColor); Assert.AreEqual(FillPattern.NoFill, patternFmt.FillPattern); patternFmt.FillPattern = (/*setter*/ FillPattern.SolidForeground); Assert.AreEqual(FillPattern.SolidForeground, patternFmt.FillPattern); patternFmt.FillPattern = (/*setter*/ FillPattern.NoFill); Assert.AreEqual(FillPattern.NoFill, patternFmt.FillPattern); patternFmt.FillPattern = (/*setter*/ FillPattern.Bricks); Assert.AreEqual(FillPattern.Bricks, patternFmt.FillPattern); IConditionalFormattingRule[] cfRules = { rule1 }; CellRangeAddress[] regions = { CellRangeAddress.ValueOf("A1:A5") }; sheetCF.AddConditionalFormatting(regions, cfRules); // Verification IConditionalFormatting cf = sheetCF.GetConditionalFormattingAt(0); Assert.IsNotNull(cf); Assert.AreEqual(1, cf.NumberOfRules); IPatternFormatting r1fp = cf.GetRule(0).GetPatternFormatting(); Assert.IsNotNull(r1fp); Assert.AreEqual(IndexedColors.Red.Index, r1fp.FillBackgroundColor); Assert.AreEqual(IndexedColors.Blue.Index, r1fp.FillForegroundColor); Assert.AreEqual(FillPattern.Bricks, r1fp.FillPattern); }
public static void ConditionFormat(ISheet sheet, int rowIndex) { ISheetConditionalFormatting sheetCF = sheet.SheetConditionalFormatting; IConditionalFormattingRule rule = sheetCF.CreateConditionalFormattingRule("$B3<>\"Transferred\""); IPatternFormatting fill = rule.CreatePatternFormatting(); fill.FillBackgroundColor = (IndexedColors.Red.Index); fill.FillPattern = FillPattern.SolidForeground; CellRangeAddress[] regions = { CellRangeAddress.ValueOf($"B3:B{rowIndex}") }; sheetCF.AddConditionalFormatting(regions, rule); }
public void ChangeCell(int rowNumber, Dictionary <int, int> cells, IConditionalFormattingRule[] cfRules) { IRow row = _sheet.GetRow(rowNumber); foreach (var cell in cells) { row.GetCell(cell.Key).SetCellValue(cell.Value); ISheetConditionalFormatting sheetCF = _sheet.SheetConditionalFormatting; CellRangeAddress[] regions = { new CellRangeAddress(rowNumber, rowNumber, cell.Key, cell.Key) }; sheetCF.AddConditionalFormatting(regions, cfRules); } }
/** * Highlight multiple cells based on a formula */ static void MultiCell(ISheet sheet) { // header row IRow row0 = sheet.CreateRow(0); row0.CreateCell(0).SetCellValue("Units"); row0.CreateCell(1).SetCellValue("Cost"); row0.CreateCell(2).SetCellValue("Total"); IRow row1 = sheet.CreateRow(1); row1.CreateCell(0).SetCellValue(71); row1.CreateCell(1).SetCellValue(29); row1.CreateCell(2).SetCellValue(2059); IRow row2 = sheet.CreateRow(2); row2.CreateCell(0).SetCellValue(85); row2.CreateCell(1).SetCellValue(29); row2.CreateCell(2).SetCellValue(2059); IRow row3 = sheet.CreateRow(3); row3.CreateCell(0).SetCellValue(71); row3.CreateCell(1).SetCellValue(29); row3.CreateCell(2).SetCellValue(2059); ISheetConditionalFormatting sheetCF = sheet.SheetConditionalFormatting; // Condition 1: Formula Is =$B2>75 (Blue Fill) IConditionalFormattingRule rule1 = sheetCF.CreateConditionalFormattingRule("$A2>75"); IPatternFormatting fill1 = rule1.CreatePatternFormatting(); fill1.FillBackgroundColor = IndexedColors.Blue.Index; fill1.FillPattern = FillPattern.SolidForeground; CellRangeAddress[] regions = { CellRangeAddress.ValueOf("A2:C4") }; sheetCF.AddConditionalFormatting(regions, rule1); sheet.GetRow(2).CreateCell(4).SetCellValue("<== Condition 1: Formula is =$B2>75 (Blue Fill)"); }
/** * You can use Excel conditional formatting to shade bands of rows on the worksheet. * In this example, 3 rows are shaded light grey, and 3 are left with no shading. * In the MOD function, the total number of rows in the set of banded rows (6) is entered. */ static void ShadeBands(ISheet sheet) { ISheetConditionalFormatting sheetCF = sheet.SheetConditionalFormatting; IConditionalFormattingRule rule1 = sheetCF.CreateConditionalFormattingRule("MOD(ROW(),6)<3"); IPatternFormatting fill1 = rule1.CreatePatternFormatting(); fill1.FillBackgroundColor = (IndexedColors.Grey25Percent.Index); fill1.FillPattern = FillPattern.SolidForeground; CellRangeAddress[] regions = { CellRangeAddress.ValueOf("A1:Z100") }; sheetCF.AddConditionalFormatting(regions, rule1); sheet.CreateRow(0).CreateCell(1).SetCellValue("Shade Bands of Rows"); sheet.CreateRow(1).CreateCell(1).SetCellValue("Condition: Formula is =MOD(ROW(),6)<2 (Light Grey Fill)"); }
public void TestCopy() { IWorkbook wb = _testDataProvider.CreateWorkbook(); ISheet sheet1 = wb.CreateSheet(); ISheet sheet2 = wb.CreateSheet(); ISheetConditionalFormatting sheet1CF = sheet1.SheetConditionalFormatting; ISheetConditionalFormatting sheet2CF = sheet2.SheetConditionalFormatting; Assert.AreEqual(0, sheet1CF.NumConditionalFormattings); Assert.AreEqual(0, sheet2CF.NumConditionalFormattings); IConditionalFormattingRule rule1 = sheet1CF.CreateConditionalFormattingRule( ComparisonOperator.Equal, "SUM(A1:A5)+10"); IConditionalFormattingRule rule2 = sheet1CF.CreateConditionalFormattingRule( ComparisonOperator.NotEqual, "15"); // adjacent Address are merged int formatIndex = sheet1CF.AddConditionalFormatting( new CellRangeAddress[] { CellRangeAddress.ValueOf("A1:A5"), CellRangeAddress.ValueOf("C1:C5") }, rule1, rule2); Assert.AreEqual(0, formatIndex); Assert.AreEqual(1, sheet1CF.NumConditionalFormattings); Assert.AreEqual(0, sheet2CF.NumConditionalFormattings); sheet2CF.AddConditionalFormatting(sheet1CF.GetConditionalFormattingAt(formatIndex)); Assert.AreEqual(1, sheet2CF.NumConditionalFormattings); IConditionalFormatting sheet2cf = sheet2CF.GetConditionalFormattingAt(0); Assert.AreEqual(2, sheet2cf.NumberOfRules); Assert.AreEqual("SUM(A1:A5)+10", sheet2cf.GetRule(0).Formula1); Assert.AreEqual(ComparisonOperator.Equal, sheet2cf.GetRule(0).ComparisonOperation); Assert.AreEqual(ConditionType.CellValueIs, sheet2cf.GetRule(0).ConditionType); Assert.AreEqual("15", sheet2cf.GetRule(1).Formula1); Assert.AreEqual(ComparisonOperator.NotEqual, sheet2cf.GetRule(1).ComparisonOperation); Assert.AreEqual(ConditionType.CellValueIs, sheet2cf.GetRule(1).ConditionType); }
/** * Use Excel conditional formatting to shade alternating rows on the worksheet */ static void ShadeAlt(ISheet sheet) { ISheetConditionalFormatting sheetCF = sheet.SheetConditionalFormatting; // Condition 1: Formula Is =A2=A1 (White Font) IConditionalFormattingRule rule1 = sheetCF.CreateConditionalFormattingRule("MOD(ROW(),2)"); IPatternFormatting fill1 = rule1.CreatePatternFormatting(); fill1.FillBackgroundColor = (IndexedColors.LightGreen.Index); fill1.FillPattern = FillPattern.SolidForeground; CellRangeAddress[] regions = { CellRangeAddress.ValueOf("A1:Z100") }; sheetCF.AddConditionalFormatting(regions, rule1); sheet.CreateRow(0).CreateCell(1).SetCellValue("Shade Alternating Rows"); sheet.CreateRow(1).CreateCell(1).SetCellValue("Condition: Formula Is =MOD(ROW(),2) (Light Green Fill)"); }
static void Main(string[] args) { InitializeWorkbook(); HSSFSheet sheet1 = (HSSFSheet)hssfworkbook.CreateSheet("Sheet1"); ISheetConditionalFormatting hscf = sheet1.SheetConditionalFormatting; // Define a Conditional Formatting rule, which triggers formatting // when cell's value is bigger than 55 and smaller than 500 // applies patternFormatting defined below. IConditionalFormattingRule rule = hscf.CreateConditionalFormattingRule( ComparisonOperator.Between, "55", // 1st formula "500" // 2nd formula ); // Create pattern with red background IPatternFormatting patternFmt = rule.CreatePatternFormatting(); patternFmt.FillBackgroundColor = NPOI.HSSF.Util.HSSFColor.Red.Index; //// Define a region containing first column CellRangeAddress[] regions = { new CellRangeAddress(0, 65535, 0, 1) }; // Apply Conditional Formatting rule defined above to the regions hscf.AddConditionalFormatting(regions, rule); //fill cell with numeric values sheet1.CreateRow(0).CreateCell(0).SetCellValue(50); sheet1.CreateRow(0).CreateCell(1).SetCellValue(101); sheet1.CreateRow(1).CreateCell(1).SetCellValue(25); sheet1.CreateRow(1).CreateCell(0).SetCellValue(150); WriteToFile(); }
public void TestCreateBorderFormatting() { IWorkbook workbook = _testDataProvider.CreateWorkbook(); ISheet sheet = workbook.CreateSheet(); ISheetConditionalFormatting sheetCF = sheet.SheetConditionalFormatting; IConditionalFormattingRule rule1 = sheetCF.CreateConditionalFormattingRule(ComparisonOperator.Equal, "7"); IBorderFormatting borderFmt = rule1.CreateBorderFormatting(); Assert.AreEqual(BorderStyle.None, borderFmt.BorderBottom); borderFmt.BorderBottom = (/*setter*/ BorderStyle.Dotted); Assert.AreEqual(BorderStyle.Dotted, borderFmt.BorderBottom); borderFmt.BorderBottom = (/*setter*/ BorderStyle.None); Assert.AreEqual(BorderStyle.None, borderFmt.BorderBottom); borderFmt.BorderBottom = (/*setter*/ BorderStyle.Thick); Assert.AreEqual(BorderStyle.Thick, borderFmt.BorderBottom); Assert.AreEqual(BorderStyle.None, borderFmt.BorderTop); borderFmt.BorderTop = (/*setter*/ BorderStyle.Dotted); Assert.AreEqual(BorderStyle.Dotted, borderFmt.BorderTop); borderFmt.BorderTop = (/*setter*/ BorderStyle.None); Assert.AreEqual(BorderStyle.None, borderFmt.BorderTop); borderFmt.BorderTop = (/*setter*/ BorderStyle.Thick); Assert.AreEqual(BorderStyle.Thick, borderFmt.BorderTop); Assert.AreEqual(BorderStyle.None, borderFmt.BorderLeft); borderFmt.BorderLeft = (/*setter*/ BorderStyle.Dotted); Assert.AreEqual(BorderStyle.Dotted, borderFmt.BorderLeft); borderFmt.BorderLeft = (/*setter*/ BorderStyle.None); Assert.AreEqual(BorderStyle.None, borderFmt.BorderLeft); borderFmt.BorderLeft = (/*setter*/ BorderStyle.Thin); Assert.AreEqual(BorderStyle.Thin, borderFmt.BorderLeft); Assert.AreEqual(BorderStyle.None, borderFmt.BorderRight); borderFmt.BorderRight = (/*setter*/ BorderStyle.Dotted); Assert.AreEqual(BorderStyle.Dotted, borderFmt.BorderRight); borderFmt.BorderRight = (/*setter*/ BorderStyle.None); Assert.AreEqual(BorderStyle.None, borderFmt.BorderRight); borderFmt.BorderRight = (/*setter*/ BorderStyle.Hair); Assert.AreEqual(BorderStyle.Hair, borderFmt.BorderRight); IConditionalFormattingRule[] cfRules = { rule1 }; CellRangeAddress[] regions = { CellRangeAddress.ValueOf("A1:A5") }; sheetCF.AddConditionalFormatting(regions, cfRules); // Verification IConditionalFormatting cf = sheetCF.GetConditionalFormattingAt(0); Assert.IsNotNull(cf); Assert.AreEqual(1, cf.NumberOfRules); IBorderFormatting r1fp = cf.GetRule(0).GetBorderFormatting(); Assert.IsNotNull(r1fp); Assert.AreEqual(BorderStyle.Thick, r1fp.BorderBottom); Assert.AreEqual(BorderStyle.Thick, r1fp.BorderTop); Assert.AreEqual(BorderStyle.Thin, r1fp.BorderLeft); Assert.AreEqual(BorderStyle.Hair, r1fp.BorderRight); }
public void TestCreateFontFormatting() { IWorkbook workbook = _testDataProvider.CreateWorkbook(); ISheet sheet = workbook.CreateSheet(); ISheetConditionalFormatting sheetCF = sheet.SheetConditionalFormatting; IConditionalFormattingRule rule1 = sheetCF.CreateConditionalFormattingRule(ComparisonOperator.Equal, "7"); IFontFormatting fontFmt = rule1.CreateFontFormatting(); Assert.IsFalse(fontFmt.IsItalic); Assert.IsFalse(fontFmt.IsBold); fontFmt.SetFontStyle(true, true); Assert.IsTrue(fontFmt.IsItalic); Assert.IsTrue(fontFmt.IsBold); Assert.AreEqual(-1, fontFmt.FontHeight); // not modified fontFmt.FontHeight = (/*setter*/ 200); Assert.AreEqual(200, fontFmt.FontHeight); fontFmt.FontHeight = (/*setter*/ 100); Assert.AreEqual(100, fontFmt.FontHeight); Assert.AreEqual(FontSuperScript.None, fontFmt.EscapementType); fontFmt.EscapementType = (/*setter*/ FontSuperScript.Sub); Assert.AreEqual(FontSuperScript.Sub, fontFmt.EscapementType); fontFmt.EscapementType = (/*setter*/ FontSuperScript.None); Assert.AreEqual(FontSuperScript.None, fontFmt.EscapementType); fontFmt.EscapementType = (/*setter*/ FontSuperScript.Super); Assert.AreEqual(FontSuperScript.Super, fontFmt.EscapementType); Assert.AreEqual(FontUnderlineType.None, fontFmt.UnderlineType); fontFmt.UnderlineType = (/*setter*/ FontUnderlineType.Single); Assert.AreEqual(FontUnderlineType.Single, fontFmt.UnderlineType); fontFmt.UnderlineType = (/*setter*/ FontUnderlineType.None); Assert.AreEqual(FontUnderlineType.None, fontFmt.UnderlineType); fontFmt.UnderlineType = (/*setter*/ FontUnderlineType.Double); Assert.AreEqual(FontUnderlineType.Double, fontFmt.UnderlineType); Assert.AreEqual(-1, fontFmt.FontColorIndex); fontFmt.FontColorIndex = (/*setter*/ HSSFColor.Red.Index); Assert.AreEqual(HSSFColor.Red.Index, fontFmt.FontColorIndex); fontFmt.FontColorIndex = (/*setter*/ HSSFColor.Automatic.Index); Assert.AreEqual(HSSFColor.Automatic.Index, fontFmt.FontColorIndex); fontFmt.FontColorIndex = (/*setter*/ HSSFColor.Blue.Index); Assert.AreEqual(HSSFColor.Blue.Index, fontFmt.FontColorIndex); IConditionalFormattingRule[] cfRules = { rule1 }; CellRangeAddress[] regions = { CellRangeAddress.ValueOf("A1:A5") }; sheetCF.AddConditionalFormatting(regions, cfRules); // Verification IConditionalFormatting cf = sheetCF.GetConditionalFormattingAt(0); Assert.IsNotNull(cf); Assert.AreEqual(1, cf.NumberOfRules); IFontFormatting r1fp = cf.GetRule(0).GetFontFormatting(); Assert.IsNotNull(r1fp); Assert.IsTrue(r1fp.IsItalic); Assert.IsTrue(r1fp.IsBold); Assert.AreEqual(FontSuperScript.Super, r1fp.EscapementType); Assert.AreEqual(FontUnderlineType.Double, r1fp.UnderlineType); Assert.AreEqual(HSSFColor.Blue.Index, r1fp.FontColorIndex); }
public void TestBasic() { IWorkbook wb = _testDataProvider.CreateWorkbook(); ISheet sh = wb.CreateSheet(); ISheetConditionalFormatting sheetCF = sh.SheetConditionalFormatting; Assert.AreEqual(0, sheetCF.NumConditionalFormattings); try { Assert.IsNull(sheetCF.GetConditionalFormattingAt(0)); Assert.Fail("expected exception"); } catch (ArgumentException e) { Assert.IsTrue(e.Message.StartsWith("Specified CF index 0 is outside the allowable range")); } try { sheetCF.RemoveConditionalFormatting(0); Assert.Fail("expected exception"); } catch (ArgumentException e) { Assert.IsTrue(e.Message.StartsWith("Specified CF index 0 is outside the allowable range")); } IConditionalFormattingRule rule1 = sheetCF.CreateConditionalFormattingRule("1"); IConditionalFormattingRule rule2 = sheetCF.CreateConditionalFormattingRule("2"); IConditionalFormattingRule rule3 = sheetCF.CreateConditionalFormattingRule("3"); IConditionalFormattingRule rule4 = sheetCF.CreateConditionalFormattingRule("4"); try { sheetCF.AddConditionalFormatting(null, rule1); Assert.Fail("expected exception"); } catch (ArgumentException e) { Assert.IsTrue(e.Message.StartsWith("regions must not be null")); } try { sheetCF.AddConditionalFormatting( new CellRangeAddress[] { CellRangeAddress.ValueOf("A1:A3") }, (IConditionalFormattingRule)null); Assert.Fail("expected exception"); } catch (ArgumentException e) { Assert.IsTrue(e.Message.StartsWith("cfRules must not be null")); } try { sheetCF.AddConditionalFormatting( new CellRangeAddress[] { CellRangeAddress.ValueOf("A1:A3") }, new IConditionalFormattingRule[0]); Assert.Fail("expected exception"); } catch (ArgumentException e) { Assert.IsTrue(e.Message.StartsWith("cfRules must not be empty")); } try { sheetCF.AddConditionalFormatting( new CellRangeAddress[] { CellRangeAddress.ValueOf("A1:A3") }, new IConditionalFormattingRule[] { rule1, rule2, rule3, rule4 }); Assert.Fail("expected exception"); } catch (ArgumentException e) { Assert.IsTrue(e.Message.StartsWith("Number of rules must not exceed 3")); } }
public void TestCreateBorderFormatting() { IWorkbook workbook = _testDataProvider.CreateWorkbook(); ISheet sheet = workbook.CreateSheet(); ISheetConditionalFormatting sheetCF = sheet.SheetConditionalFormatting; IConditionalFormattingRule rule1 = sheetCF.CreateConditionalFormattingRule(ComparisonOperator.EQUAL, "7"); IBorderFormatting borderFmt = rule1.CreateBorderFormatting(); Assert.AreEqual(BorderFormatting.BORDER_NONE, borderFmt.BorderBottom); borderFmt.BorderBottom = (/*setter*/ BorderFormatting.BORDER_DOTTED); Assert.AreEqual(BorderFormatting.BORDER_DOTTED, borderFmt.BorderBottom); borderFmt.BorderBottom = (/*setter*/ BorderFormatting.BORDER_NONE); Assert.AreEqual(BorderFormatting.BORDER_NONE, borderFmt.BorderBottom); borderFmt.BorderBottom = (/*setter*/ BorderFormatting.BORDER_THICK); Assert.AreEqual(BorderFormatting.BORDER_THICK, borderFmt.BorderBottom); Assert.AreEqual(BorderFormatting.BORDER_NONE, borderFmt.BorderTop); borderFmt.BorderTop = (/*setter*/ BorderFormatting.BORDER_DOTTED); Assert.AreEqual(BorderFormatting.BORDER_DOTTED, borderFmt.BorderTop); borderFmt.BorderTop = (/*setter*/ BorderFormatting.BORDER_NONE); Assert.AreEqual(BorderFormatting.BORDER_NONE, borderFmt.BorderTop); borderFmt.BorderTop = (/*setter*/ BorderFormatting.BORDER_THICK); Assert.AreEqual(BorderFormatting.BORDER_THICK, borderFmt.BorderTop); Assert.AreEqual(BorderFormatting.BORDER_NONE, borderFmt.BorderLeft); borderFmt.BorderLeft = (/*setter*/ BorderFormatting.BORDER_DOTTED); Assert.AreEqual(BorderFormatting.BORDER_DOTTED, borderFmt.BorderLeft); borderFmt.BorderLeft = (/*setter*/ BorderFormatting.BORDER_NONE); Assert.AreEqual(BorderFormatting.BORDER_NONE, borderFmt.BorderLeft); borderFmt.BorderLeft = (/*setter*/ BorderFormatting.BORDER_THIN); Assert.AreEqual(BorderFormatting.BORDER_THIN, borderFmt.BorderLeft); Assert.AreEqual(BorderFormatting.BORDER_NONE, borderFmt.BorderRight); borderFmt.BorderRight = (/*setter*/ BorderFormatting.BORDER_DOTTED); Assert.AreEqual(BorderFormatting.BORDER_DOTTED, borderFmt.BorderRight); borderFmt.BorderRight = (/*setter*/ BorderFormatting.BORDER_NONE); Assert.AreEqual(BorderFormatting.BORDER_NONE, borderFmt.BorderRight); borderFmt.BorderRight = (/*setter*/ BorderFormatting.BORDER_HAIR); Assert.AreEqual(BorderFormatting.BORDER_HAIR, borderFmt.BorderRight); IConditionalFormattingRule[] cfRules = { rule1 }; CellRangeAddress[] regions = { CellRangeAddress.ValueOf("A1:A5") }; sheetCF.AddConditionalFormatting(regions, cfRules); // Verification IConditionalFormatting cf = sheetCF.GetConditionalFormattingAt(0); Assert.IsNotNull(cf); Assert.AreEqual(1, cf.NumberOfRules); IBorderFormatting r1fp = cf.GetRule(0).GetBorderFormatting(); Assert.IsNotNull(r1fp); Assert.AreEqual(BorderFormatting.BORDER_THICK, r1fp.BorderBottom); Assert.AreEqual(BorderFormatting.BORDER_THICK, r1fp.BorderTop); Assert.AreEqual(BorderFormatting.BORDER_THIN, r1fp.BorderLeft); Assert.AreEqual(BorderFormatting.BORDER_HAIR, r1fp.BorderRight); }
public void test52122() { IWorkbook workbook = new HSSFWorkbook(); ISheet 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 IRow row = sheet.CreateRow(0); ICell cell0 = row.CreateCell(0); cell0.SetCellType(CellType.Numeric); cell0.SetCellValue(100); ICell cell1 = row.CreateCell(1); cell1.SetCellType(CellType.Numeric); cell1.SetCellValue(120); ICell 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. ISheetConditionalFormatting formatting = sheet.SheetConditionalFormatting; IConditionalFormattingRule rule = formatting.CreateConditionalFormattingRule("$A$1>75"); IPatternFormatting pattern = rule.CreatePatternFormatting(); pattern.FillBackgroundColor = IndexedColors.Blue.Index; pattern.FillPattern = FillPattern.SolidForeground; 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(); * }*/ IWorkbook wbBack = HSSFTestDataSamples.WriteOutAndReadBack((HSSFWorkbook)workbook); ISheet sheetBack = wbBack.GetSheetAt(0); ISheetConditionalFormatting sheetConditionalFormattingBack = sheetBack.SheetConditionalFormatting; Assert.IsNotNull(sheetConditionalFormattingBack); IConditionalFormatting formattingBack = sheetConditionalFormattingBack.GetConditionalFormattingAt(0); Assert.IsNotNull(formattingBack); IConditionalFormattingRule ruleBack = formattingBack.GetRule(0); Assert.IsNotNull(ruleBack); IPatternFormatting patternFormattingBack1 = ruleBack.PatternFormatting; Assert.IsNotNull(patternFormattingBack1); Assert.AreEqual(IndexedColors.Blue.Index, patternFormattingBack1.FillBackgroundColor); Assert.AreEqual(FillPattern.SolidForeground, patternFormattingBack1.FillPattern); }
public void TestCreateCF() { IWorkbook workbook = _testDataProvider.CreateWorkbook(); ISheet sheet = workbook.CreateSheet(); String formula = "7"; ISheetConditionalFormatting sheetCF = sheet.SheetConditionalFormatting; IConditionalFormattingRule rule1 = sheetCF.CreateConditionalFormattingRule(formula); IFontFormatting fontFmt = rule1.CreateFontFormatting(); fontFmt.SetFontStyle(true, false); IBorderFormatting bordFmt = rule1.CreateBorderFormatting(); bordFmt.BorderBottom = (/*setter*/ BorderStyle.Thin); bordFmt.BorderTop = (/*setter*/ BorderStyle.Thick); bordFmt.BorderLeft = (/*setter*/ BorderStyle.Dashed); bordFmt.BorderRight = (/*setter*/ BorderStyle.Dotted); IPatternFormatting patternFmt = rule1.CreatePatternFormatting(); patternFmt.FillBackgroundColor = (/*setter*/ HSSFColor.Yellow.Index); IConditionalFormattingRule rule2 = sheetCF.CreateConditionalFormattingRule(ComparisonOperator.Between, "1", "2"); IConditionalFormattingRule[] cfRules = { rule1, rule2 }; short col = 1; CellRangeAddress[] regions = { new CellRangeAddress(0, 65535, col, col) }; sheetCF.AddConditionalFormatting(regions, cfRules); sheetCF.AddConditionalFormatting(regions, cfRules); // Verification Assert.AreEqual(2, sheetCF.NumConditionalFormattings); sheetCF.RemoveConditionalFormatting(1); Assert.AreEqual(1, sheetCF.NumConditionalFormattings); IConditionalFormatting cf = sheetCF.GetConditionalFormattingAt(0); Assert.IsNotNull(cf); regions = cf.GetFormattingRanges(); Assert.IsNotNull(regions); Assert.AreEqual(1, regions.Length); CellRangeAddress r = regions[0]; Assert.AreEqual(1, r.FirstColumn); Assert.AreEqual(1, r.LastColumn); Assert.AreEqual(0, r.FirstRow); Assert.AreEqual(65535, r.LastRow); Assert.AreEqual(2, cf.NumberOfRules); rule1 = cf.GetRule(0); Assert.AreEqual("7", rule1.Formula1); Assert.IsNull(rule1.Formula2); IFontFormatting r1fp = rule1.GetFontFormatting(); Assert.IsNotNull(r1fp); Assert.IsTrue(r1fp.IsItalic); Assert.IsFalse(r1fp.IsBold); IBorderFormatting r1bf = rule1.GetBorderFormatting(); Assert.IsNotNull(r1bf); Assert.AreEqual(BorderStyle.Thin, r1bf.BorderBottom); Assert.AreEqual(BorderStyle.Thick, r1bf.BorderTop); Assert.AreEqual(BorderStyle.Dashed, r1bf.BorderLeft); Assert.AreEqual(BorderStyle.Dotted, r1bf.BorderRight); IPatternFormatting r1pf = rule1.GetPatternFormatting(); Assert.IsNotNull(r1pf); // Assert.AreEqual(HSSFColor.Yellow.index,r1pf.FillBackgroundColor); rule2 = cf.GetRule(1); Assert.AreEqual("2", rule2.Formula2); Assert.AreEqual("1", rule2.Formula1); }
public void TestSetSheetOrderHSSF() { IWorkbook wb = new HSSFWorkbook(); ISheet s1 = wb.CreateSheet("first sheet"); ISheet s2 = wb.CreateSheet("other sheet"); IName name1 = wb.CreateName(); name1.NameName = (/*setter*/ "name1"); name1.RefersToFormula = (/*setter*/ "'first sheet'!D1"); IName name2 = wb.CreateName(); name2.NameName = (/*setter*/ "name2"); name2.RefersToFormula = (/*setter*/ "'other sheet'!C1"); IRow s1r1 = s1.CreateRow(2); ICell c1 = s1r1.CreateCell(3); c1.SetCellValue(30); ICell c2 = s1r1.CreateCell(2); c2.CellFormula = (/*setter*/ "SUM('other sheet'!C1,'first sheet'!C1)"); IRow s2r1 = s2.CreateRow(0); ICell c3 = s2r1.CreateCell(1); c3.CellFormula = (/*setter*/ "'first sheet'!D3"); ICell c4 = s2r1.CreateCell(2); c4.CellFormula = (/*setter*/ "'other sheet'!D3"); // conditional formatting ISheetConditionalFormatting sheetCF = s1.SheetConditionalFormatting; IConditionalFormattingRule rule1 = sheetCF.CreateConditionalFormattingRule( ComparisonOperator.BETWEEN, "'first sheet'!D1", "'other sheet'!D1"); IConditionalFormattingRule[] cfRules = { rule1 }; CellRangeAddress[] regions = { new CellRangeAddress(2, 4, 0, 0), // A3:A5 }; sheetCF.AddConditionalFormatting(regions, cfRules); wb.SetSheetOrder("other sheet", 0); // names Assert.AreEqual("'first sheet'!D1", wb.GetName("name1").RefersToFormula); Assert.AreEqual("'other sheet'!C1", wb.GetName("name2").RefersToFormula); // cells Assert.AreEqual("SUM('other sheet'!C1,'first sheet'!C1)", c2.CellFormula); Assert.AreEqual("'first sheet'!D3", c3.CellFormula); Assert.AreEqual("'other sheet'!D3", c4.CellFormula); // conditional formatting IConditionalFormatting cf = sheetCF.GetConditionalFormattingAt(0); Assert.AreEqual("'first sheet'!D1", cf.GetRule(0).Formula1); Assert.AreEqual("'other sheet'!D1", cf.GetRule(0).Formula2); }
public void TestCreateFontFormatting() { IWorkbook workbook = _testDataProvider.CreateWorkbook(); ISheet sheet = workbook.CreateSheet(); ISheetConditionalFormatting sheetCF = sheet.SheetConditionalFormatting; IConditionalFormattingRule rule1 = sheetCF.CreateConditionalFormattingRule(ComparisonOperator.EQUAL, "7"); IFontFormatting fontFmt = rule1.CreateFontFormatting(); Assert.IsFalse(fontFmt.IsItalic); Assert.IsFalse(fontFmt.IsBold); fontFmt.SetFontStyle(true, true); Assert.IsTrue(fontFmt.IsItalic); Assert.IsTrue(fontFmt.IsBold); Assert.AreEqual(-1, fontFmt.FontHeight); // not modified fontFmt.FontHeight = (/*setter*/ 200); Assert.AreEqual(200, fontFmt.FontHeight); fontFmt.FontHeight = (/*setter*/ 100); Assert.AreEqual(100, fontFmt.FontHeight); Assert.AreEqual(FontFormatting.SS_NONE, (short)fontFmt.EscapementType); fontFmt.EscapementType = (/*setter*/ FontSuperScript.SUB); Assert.AreEqual(FontFormatting.SS_SUB, (short)fontFmt.EscapementType); fontFmt.EscapementType = (/*setter*/ FontSuperScript.NONE); Assert.AreEqual(FontFormatting.SS_NONE, (short)fontFmt.EscapementType); fontFmt.EscapementType = (/*setter*/ FontSuperScript.SUPER); Assert.AreEqual(FontFormatting.SS_SUPER, (short)fontFmt.EscapementType); Assert.AreEqual(FontFormatting.U_NONE, (byte)fontFmt.UnderlineType); fontFmt.UnderlineType = (/*setter*/ FontUnderlineType.SINGLE); Assert.AreEqual(FontFormatting.U_SINGLE, (byte)fontFmt.UnderlineType); fontFmt.UnderlineType = (/*setter*/ FontUnderlineType.NONE); Assert.AreEqual(FontFormatting.U_NONE, (byte)fontFmt.UnderlineType); fontFmt.UnderlineType = (/*setter*/ FontUnderlineType.DOUBLE); Assert.AreEqual(FontFormatting.U_DOUBLE, (byte)fontFmt.UnderlineType); Assert.AreEqual(-1, fontFmt.FontColorIndex); fontFmt.FontColorIndex = (/*setter*/ IndexedColors.RED.Index); Assert.AreEqual(IndexedColors.RED.Index, fontFmt.FontColorIndex); fontFmt.FontColorIndex = (/*setter*/ IndexedColors.AUTOMATIC.Index); Assert.AreEqual(IndexedColors.AUTOMATIC.Index, fontFmt.FontColorIndex); fontFmt.FontColorIndex = (/*setter*/ IndexedColors.BLUE.Index); Assert.AreEqual(IndexedColors.BLUE.Index, fontFmt.FontColorIndex); IConditionalFormattingRule[] cfRules = { rule1 }; CellRangeAddress[] regions = { CellRangeAddress.ValueOf("A1:A5") }; sheetCF.AddConditionalFormatting(regions, cfRules); // Verification IConditionalFormatting cf = sheetCF.GetConditionalFormattingAt(0); Assert.IsNotNull(cf); Assert.AreEqual(1, cf.NumberOfRules); IFontFormatting r1fp = cf.GetRule(0).GetFontFormatting(); Assert.IsNotNull(r1fp); Assert.IsTrue(r1fp.IsItalic); Assert.IsTrue(r1fp.IsBold); Assert.AreEqual(FontFormatting.SS_SUPER, (short)r1fp.EscapementType); Assert.AreEqual(FontFormatting.U_DOUBLE, (short)r1fp.UnderlineType); Assert.AreEqual(IndexedColors.BLUE.Index, r1fp.FontColorIndex); }