|  | using System; | 
|  | using System.Text; | 
|  | using System.Collections.Generic; | 
|  | using System.Linq; | 
|  | using Microsoft.VisualStudio.TestTools.UnitTesting; | 
|  | using OfficeOpenXml; | 
|  | using OfficeOpenXml.ConditionalFormatting; | 
|  | using System.IO; | 
|  | using OfficeOpenXml.ConditionalFormatting.Contracts; | 
|  | using System.Drawing; | 
|  |  | 
|  | namespace EPPlusTest | 
|  | { | 
|  | /// <summary> | 
|  | /// Test the Conditional Formatting feature | 
|  | /// </summary> | 
|  | [TestClass] | 
|  | public class ConditionalFormatting | 
|  | { | 
|  | private TestContext testContextInstance; | 
|  | private static ExcelPackage _pck; | 
|  |  | 
|  | /// <summary> | 
|  | ///Gets or sets the test context which provides | 
|  | ///information about and functionality for the current test run. | 
|  | ///</summary> | 
|  | public TestContext TestContext | 
|  | { | 
|  | get | 
|  | { | 
|  | return testContextInstance; | 
|  | } | 
|  | set | 
|  | { | 
|  | testContextInstance = value; | 
|  | } | 
|  | } | 
|  |  | 
|  | #region Additional test attributes | 
|  | // You can use the following additional attributes as you write your tests: | 
|  | // Use ClassInitialize to run code before running the first test in the class | 
|  | [ClassInitialize()] | 
|  | public static void MyClassInitialize(TestContext testContext) | 
|  | { | 
|  | if (!Directory.Exists("Test")) | 
|  | { | 
|  | Directory.CreateDirectory(string.Format("Test")); | 
|  | } | 
|  |  | 
|  | _pck = new ExcelPackage(new FileInfo(@"Test\ConditionalFormatting.xlsx")); | 
|  | } | 
|  |  | 
|  | // Use ClassCleanup to run code after all tests in a class have run | 
|  | [ClassCleanup()] | 
|  | public static void MyClassCleanup() | 
|  | { | 
|  | _pck = null; | 
|  | } | 
|  |  | 
|  | // //Use TestInitialize to run code before running each test | 
|  | // [TestInitialize()] | 
|  | // public void MyTestInitialize() | 
|  | // { | 
|  | // } | 
|  |  | 
|  | //// Use TestCleanup to run code after each test has run | 
|  | // [TestCleanup()] | 
|  | // public void MyTestCleanup() | 
|  | // { | 
|  | // } | 
|  | #endregion | 
|  |  | 
|  | /// <summary> | 
|  | /// | 
|  | /// </summary> | 
|  | [TestMethod] | 
|  | public void TwoColorScale() | 
|  | { | 
|  | var ws = _pck.Workbook.Worksheets.Add("ColorScale"); | 
|  | ws.ConditionalFormatting.AddTwoColorScale(ws.Cells["A1:A5"]); | 
|  | ws.SetValue(1, 1, 1); | 
|  | ws.SetValue(2, 1, 2); | 
|  | ws.SetValue(3, 1, 3); | 
|  | ws.SetValue(4, 1, 4); | 
|  | ws.SetValue(5, 1, 5); | 
|  | } | 
|  |  | 
|  | /// <summary> | 
|  | /// | 
|  | /// </summary> | 
|  | [TestMethod] | 
|  | [Ignore] | 
|  | public void ReadConditionalFormatting() | 
|  | { | 
|  | var pck = new ExcelPackage(new FileInfo(@"c:\temp\cf.xlsx")); | 
|  |  | 
|  | var ws = pck.Workbook.Worksheets[1]; | 
|  | Assert.IsTrue(ws.ConditionalFormatting.Count == 6); | 
|  | Assert.IsTrue(ws.ConditionalFormatting[0].Type==eExcelConditionalFormattingRuleType.DataBar); | 
|  |  | 
|  | var cf1 = ws.ConditionalFormatting.AddEqual(ws.Cells["C3"]); | 
|  | //cf1.Formula = "TRUE"; | 
|  | var cf2 = ws.Cells["C8:C12"].ConditionalFormatting.AddExpression(); | 
|  | var cf3 = ws.Cells["d12:D22,H12:H22"].ConditionalFormatting.AddFourIconSet(eExcelconditionalFormatting4IconsSetType.RedToBlack); | 
|  | pck.SaveAs(new FileInfo(@"c:\temp\cf2.xlsx")); | 
|  | } | 
|  | /// <summary> | 
|  | /// | 
|  | /// </summary> | 
|  | [TestMethod] | 
|  | [Ignore] | 
|  | public void ReadConditionalFormattingError() | 
|  | { | 
|  | var pck = new ExcelPackage(new FileInfo(@"c:\temp\CofCTemplate.xlsx")); | 
|  |  | 
|  | var ws = pck.Workbook.Worksheets[1]; | 
|  | pck.SaveAs(new FileInfo(@"c:\temp\cf2.xlsx")); | 
|  | } | 
|  | /// <summary> | 
|  | /// | 
|  | /// </summary> | 
|  | [TestMethod] | 
|  | public void TwoBackColor() | 
|  | { | 
|  | var ws = _pck.Workbook.Worksheets.Add("TwoBackColor"); | 
|  | IExcelConditionalFormattingEqual condition1 = ws.ConditionalFormatting.AddEqual(ws.Cells["A1"]); | 
|  | condition1.StopIfTrue = true; | 
|  | condition1.Priority = 1; | 
|  | condition1.Formula = "TRUE"; | 
|  | condition1.Style.Fill.BackgroundColor.Color = Color.Green; | 
|  | IExcelConditionalFormattingEqual condition2 = ws.ConditionalFormatting.AddEqual(ws.Cells["A2"]); | 
|  | condition2.StopIfTrue = true; | 
|  | condition2.Priority = 2; | 
|  | condition2.Formula = "FALSE"; | 
|  | condition2.Style.Fill.BackgroundColor.Color = Color.Red; | 
|  | } | 
|  | [TestMethod] | 
|  | public void Databar() | 
|  | { | 
|  | var ws = _pck.Workbook.Worksheets.Add("Databar"); | 
|  | var cf = ws.ConditionalFormatting.AddDatabar(ws.Cells["A1:A5"], Color.BlueViolet); | 
|  | ws.SetValue(1, 1, 1); | 
|  | ws.SetValue(2, 1, 2); | 
|  | ws.SetValue(3, 1, 3); | 
|  | ws.SetValue(4, 1, 4); | 
|  | ws.SetValue(5, 1, 5); | 
|  | } | 
|  | [TestMethod] | 
|  | public void IconSet() | 
|  | { | 
|  | var ws = _pck.Workbook.Worksheets.Add("IconSet"); | 
|  | var cf = ws.ConditionalFormatting.AddThreeIconSet(ws.Cells["A1:A3"], eExcelconditionalFormatting3IconsSetType.Symbols); | 
|  | ws.SetValue(1, 1, 1); | 
|  | ws.SetValue(2, 1, 2); | 
|  | ws.SetValue(3, 1, 3); | 
|  |  | 
|  | var cf4 = ws.ConditionalFormatting.AddFourIconSet(ws.Cells["B1:B4"], eExcelconditionalFormatting4IconsSetType.Rating); | 
|  | cf4.Icon1.Type = eExcelConditionalFormattingValueObjectType.Formula; | 
|  | cf4.Icon1.Formula = "0"; | 
|  | cf4.Icon2.Type = eExcelConditionalFormattingValueObjectType.Formula; | 
|  | cf4.Icon2.Formula = "1/3"; | 
|  | cf4.Icon3.Type = eExcelConditionalFormattingValueObjectType.Formula; | 
|  | cf4.Icon3.Formula = "2/3"; | 
|  | ws.SetValue(1, 2, 1); | 
|  | ws.SetValue(2, 2, 2); | 
|  | ws.SetValue(3, 2, 3); | 
|  | ws.SetValue(4, 2, 4); | 
|  |  | 
|  | var cf5 = ws.ConditionalFormatting.AddFiveIconSet(ws.Cells["C1:C5"],eExcelconditionalFormatting5IconsSetType.Quarters); | 
|  | cf5.Icon1.Type = eExcelConditionalFormattingValueObjectType.Num; | 
|  | cf5.Icon1.Value = 1; | 
|  | cf5.Icon2.Type = eExcelConditionalFormattingValueObjectType.Num; | 
|  | cf5.Icon2.Value = 2; | 
|  | cf5.Icon3.Type = eExcelConditionalFormattingValueObjectType.Num; | 
|  | cf5.Icon3.Value = 3; | 
|  | cf5.Icon4.Type = eExcelConditionalFormattingValueObjectType.Num; | 
|  | cf5.Icon4.Value = 4; | 
|  | cf5.Icon5.Type = eExcelConditionalFormattingValueObjectType.Num; | 
|  | cf5.Icon5.Value = 5; | 
|  | cf5.ShowValue = false; | 
|  | cf5.Reverse = true; | 
|  |  | 
|  | ws.SetValue(1, 3, 1); | 
|  | ws.SetValue(2, 3, 2); | 
|  | ws.SetValue(3, 3, 3); | 
|  | ws.SetValue(4, 3, 4); | 
|  | ws.SetValue(5, 3, 5); | 
|  | } | 
|  | } | 
|  | } |