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