| /******************************************************************************* | |
| * You may amend and distribute as you like, but don't remove this header! | |
| * | |
| * EPPlus provides server-side generation of Excel 2007/2010 spreadsheets. | |
| * See http://www.codeplex.com/EPPlus for details. | |
| * | |
| * Copyright (C) 2011 Jan Källman | |
| * | |
| * This library is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; either | |
| * version 2.1 of the License, or (at your option) any later version. | |
| * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | |
| * See the GNU Lesser General Public License for more details. | |
| * | |
| * The GNU Lesser General Public License can be viewed at http://www.opensource.org/licenses/lgpl-license.php | |
| * If you unfamiliar with this license or have questions about it, here is an http://www.gnu.org/licenses/gpl-faq.html | |
| * | |
| * All code and executables are provided "as is" with no warranty either express or implied. | |
| * The author accepts no liability for any damage or loss of business that this product may cause. | |
| * | |
| * Code change notes: | |
| * | |
| * Author Change Date | |
| * ****************************************************************************** | |
| * Eyal Seagull Conditional Formatting 2012-04-03 | |
| *******************************************************************************/ | |
| using System; | |
| using System.Collections.Generic; | |
| using System.Linq; | |
| using System.Text; | |
| using OfficeOpenXml.Utils; | |
| using OfficeOpenXml.ConditionalFormatting.Contracts; | |
| namespace OfficeOpenXml.ConditionalFormatting | |
| { | |
| internal class RangeConditionalFormatting | |
| : IRangeConditionalFormatting | |
| { | |
| #region Public Properties | |
| public ExcelWorksheet _worksheet; | |
| public ExcelAddress _address; | |
| #endregion Public Properties | |
| #region Constructors | |
| public RangeConditionalFormatting( | |
| ExcelWorksheet worksheet, | |
| ExcelAddress address) | |
| { | |
| Require.Argument(worksheet).IsNotNull("worksheet"); | |
| Require.Argument(address).IsNotNull("address"); | |
| _worksheet = worksheet; | |
| _address = address; | |
| } | |
| #endregion Constructors | |
| #region Conditional Formatting Rule Types | |
| /// <summary> | |
| /// Add AboveOrEqualAverage Conditional Formatting | |
| /// </summary> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingAverageGroup AddAboveAverage() | |
| { | |
| return _worksheet.ConditionalFormatting.AddAboveAverage( | |
| _address); | |
| } | |
| /// <summary> | |
| /// Add AboveOrEqualAverage Conditional Formatting | |
| /// </summary> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingAverageGroup AddAboveOrEqualAverage() | |
| { | |
| return _worksheet.ConditionalFormatting.AddAboveOrEqualAverage( | |
| _address); | |
| } | |
| /// <summary> | |
| /// Add BelowOrEqualAverage Conditional Formatting | |
| /// </summary> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingAverageGroup AddBelowAverage() | |
| { | |
| return _worksheet.ConditionalFormatting.AddBelowAverage( | |
| _address); | |
| } | |
| /// <summary> | |
| /// Add BelowOrEqualAverage Conditional Formatting | |
| /// </summary> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingAverageGroup AddBelowOrEqualAverage() | |
| { | |
| return _worksheet.ConditionalFormatting.AddBelowOrEqualAverage( | |
| _address); | |
| } | |
| /// <summary> | |
| /// Add AboveStdDev Conditional Formatting | |
| /// </summary> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingStdDevGroup AddAboveStdDev() | |
| { | |
| return _worksheet.ConditionalFormatting.AddAboveStdDev( | |
| _address); | |
| } | |
| /// <summary> | |
| /// Add BelowStdDev Conditional Formatting | |
| /// </summary> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingStdDevGroup AddBelowStdDev() | |
| { | |
| return _worksheet.ConditionalFormatting.AddBelowStdDev( | |
| _address); | |
| } | |
| /// <summary> | |
| /// Add Bottom Conditional Formatting | |
| /// </summary> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingTopBottomGroup AddBottom() | |
| { | |
| return _worksheet.ConditionalFormatting.AddBottom( | |
| _address); | |
| } | |
| /// <summary> | |
| /// Add BottomPercent Conditional Formatting | |
| /// </summary> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingTopBottomGroup AddBottomPercent() | |
| { | |
| return _worksheet.ConditionalFormatting.AddBottomPercent( | |
| _address); | |
| } | |
| /// <summary> | |
| /// Add Top Conditional Formatting | |
| /// </summary> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingTopBottomGroup AddTop() | |
| { | |
| return _worksheet.ConditionalFormatting.AddTop( | |
| _address); | |
| } | |
| /// <summary> | |
| /// Add TopPercent Conditional Formatting | |
| /// </summary> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingTopBottomGroup AddTopPercent() | |
| { | |
| return _worksheet.ConditionalFormatting.AddTopPercent( | |
| _address); | |
| } | |
| /// <summary> | |
| /// Add Last7Days Conditional Formatting | |
| /// </summary> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingTimePeriodGroup AddLast7Days() | |
| { | |
| return _worksheet.ConditionalFormatting.AddLast7Days( | |
| _address); | |
| } | |
| /// <summary> | |
| /// Add LastMonth Conditional Formatting | |
| /// </summary> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingTimePeriodGroup AddLastMonth() | |
| { | |
| return _worksheet.ConditionalFormatting.AddLastMonth( | |
| _address); | |
| } | |
| /// <summary> | |
| /// Add LastWeek Conditional Formatting | |
| /// </summary> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingTimePeriodGroup AddLastWeek() | |
| { | |
| return _worksheet.ConditionalFormatting.AddLastWeek( | |
| _address); | |
| } | |
| /// <summary> | |
| /// Add NextMonth Conditional Formatting | |
| /// </summary> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingTimePeriodGroup AddNextMonth() | |
| { | |
| return _worksheet.ConditionalFormatting.AddNextMonth( | |
| _address); | |
| } | |
| /// <summary> | |
| /// Add NextWeek Conditional Formatting | |
| /// </summary> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingTimePeriodGroup AddNextWeek() | |
| { | |
| return _worksheet.ConditionalFormatting.AddNextWeek( | |
| _address); | |
| } | |
| /// <summary> | |
| /// Add ThisMonth Conditional Formatting | |
| /// </summary> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingTimePeriodGroup AddThisMonth() | |
| { | |
| return _worksheet.ConditionalFormatting.AddThisMonth( | |
| _address); | |
| } | |
| /// <summary> | |
| /// Add ThisWeek Conditional Formatting | |
| /// </summary> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingTimePeriodGroup AddThisWeek() | |
| { | |
| return _worksheet.ConditionalFormatting.AddThisWeek( | |
| _address); | |
| } | |
| /// <summary> | |
| /// Add Today Conditional Formatting | |
| /// </summary> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingTimePeriodGroup AddToday() | |
| { | |
| return _worksheet.ConditionalFormatting.AddToday( | |
| _address); | |
| } | |
| /// <summary> | |
| /// Add Tomorrow Conditional Formatting | |
| /// </summary> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingTimePeriodGroup AddTomorrow() | |
| { | |
| return _worksheet.ConditionalFormatting.AddTomorrow( | |
| _address); | |
| } | |
| /// <summary> | |
| /// Add Yesterday Conditional Formatting | |
| /// </summary> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingTimePeriodGroup AddYesterday() | |
| { | |
| return _worksheet.ConditionalFormatting.AddYesterday( | |
| _address); | |
| } | |
| /// <summary> | |
| /// Add BeginsWith Conditional Formatting | |
| /// </summary> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingBeginsWith AddBeginsWith() | |
| { | |
| return _worksheet.ConditionalFormatting.AddBeginsWith( | |
| _address); | |
| } | |
| /// <summary> | |
| /// Add Between Conditional Formatting | |
| /// </summary> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingBetween AddBetween() | |
| { | |
| return _worksheet.ConditionalFormatting.AddBetween( | |
| _address); | |
| } | |
| /// <summary> | |
| /// Add ContainsBlanks Conditional Formatting | |
| /// </summary> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingContainsBlanks AddContainsBlanks() | |
| { | |
| return _worksheet.ConditionalFormatting.AddContainsBlanks( | |
| _address); | |
| } | |
| /// <summary> | |
| /// Add ContainsErrors Conditional Formatting | |
| /// </summary> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingContainsErrors AddContainsErrors() | |
| { | |
| return _worksheet.ConditionalFormatting.AddContainsErrors( | |
| _address); | |
| } | |
| /// <summary> | |
| /// Add ContainsText Conditional Formatting | |
| /// </summary> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingContainsText AddContainsText() | |
| { | |
| return _worksheet.ConditionalFormatting.AddContainsText( | |
| _address); | |
| } | |
| /// <summary> | |
| /// Add DuplicateValues Conditional Formatting | |
| /// </summary> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingDuplicateValues AddDuplicateValues() | |
| { | |
| return _worksheet.ConditionalFormatting.AddDuplicateValues( | |
| _address); | |
| } | |
| /// <summary> | |
| /// Add EndsWith Conditional Formatting | |
| /// </summary> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingEndsWith AddEndsWith() | |
| { | |
| return _worksheet.ConditionalFormatting.AddEndsWith( | |
| _address); | |
| } | |
| /// <summary> | |
| /// Add Equal Conditional Formatting | |
| /// </summary> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingEqual AddEqual() | |
| { | |
| return _worksheet.ConditionalFormatting.AddEqual( | |
| _address); | |
| } | |
| /// <summary> | |
| /// Add Expression Conditional Formatting | |
| /// </summary> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingExpression AddExpression() | |
| { | |
| return _worksheet.ConditionalFormatting.AddExpression( | |
| _address); | |
| } | |
| /// <summary> | |
| /// Add GreaterThan Conditional Formatting | |
| /// </summary> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingGreaterThan AddGreaterThan() | |
| { | |
| return _worksheet.ConditionalFormatting.AddGreaterThan( | |
| _address); | |
| } | |
| /// <summary> | |
| /// Add GreaterThanOrEqual Conditional Formatting | |
| /// </summary> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingGreaterThanOrEqual AddGreaterThanOrEqual() | |
| { | |
| return _worksheet.ConditionalFormatting.AddGreaterThanOrEqual( | |
| _address); | |
| } | |
| /// <summary> | |
| /// Add LessThan Conditional Formatting | |
| /// </summary> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingLessThan AddLessThan() | |
| { | |
| return _worksheet.ConditionalFormatting.AddLessThan( | |
| _address); | |
| } | |
| /// <summary> | |
| /// Add LessThanOrEqual Conditional Formatting | |
| /// </summary> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingLessThanOrEqual AddLessThanOrEqual() | |
| { | |
| return _worksheet.ConditionalFormatting.AddLessThanOrEqual( | |
| _address); | |
| } | |
| /// <summary> | |
| /// Add NotBetween Conditional Formatting | |
| /// </summary> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingNotBetween AddNotBetween() | |
| { | |
| return _worksheet.ConditionalFormatting.AddNotBetween( | |
| _address); | |
| } | |
| /// <summary> | |
| /// Add NotContainsBlanks Conditional Formatting | |
| /// </summary> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingNotContainsBlanks AddNotContainsBlanks() | |
| { | |
| return _worksheet.ConditionalFormatting.AddNotContainsBlanks( | |
| _address); | |
| } | |
| /// <summary> | |
| /// Add NotContainsErrors Conditional Formatting | |
| /// </summary> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingNotContainsErrors AddNotContainsErrors() | |
| { | |
| return _worksheet.ConditionalFormatting.AddNotContainsErrors( | |
| _address); | |
| } | |
| /// <summary> | |
| /// Add NotContainsText Conditional Formatting | |
| /// </summary> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingNotContainsText AddNotContainsText() | |
| { | |
| return _worksheet.ConditionalFormatting.AddNotContainsText( | |
| _address); | |
| } | |
| /// <summary> | |
| /// Add NotEqual Conditional Formatting | |
| /// </summary> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingNotEqual AddNotEqual() | |
| { | |
| return _worksheet.ConditionalFormatting.AddNotEqual( | |
| _address); | |
| } | |
| /// <summary> | |
| /// Add UniqueValues Conditional Formatting | |
| /// </summary> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingUniqueValues AddUniqueValues() | |
| { | |
| return _worksheet.ConditionalFormatting.AddUniqueValues( | |
| _address); | |
| } | |
| /// <summary> | |
| /// Add ThreeColorScale Conditional Formatting | |
| /// </summary> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingThreeColorScale AddThreeColorScale() | |
| { | |
| return (IExcelConditionalFormattingThreeColorScale)(_worksheet.ConditionalFormatting.AddRule( | |
| eExcelConditionalFormattingRuleType.ThreeColorScale, | |
| _address)); | |
| } | |
| /// <summary> | |
| /// Add TwoColorScale Conditional Formatting | |
| /// </summary> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingTwoColorScale AddTwoColorScale() | |
| { | |
| return (IExcelConditionalFormattingTwoColorScale)(_worksheet.ConditionalFormatting.AddRule( | |
| eExcelConditionalFormattingRuleType.TwoColorScale, | |
| _address)); | |
| } | |
| /// <summary> | |
| /// Adds a ThreeIconSet rule | |
| /// </summary> | |
| /// <param name="IconSet"></param> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingThreeIconSet<eExcelconditionalFormatting3IconsSetType> AddThreeIconSet(eExcelconditionalFormatting3IconsSetType IconSet) | |
| { | |
| var rule = (IExcelConditionalFormattingThreeIconSet<eExcelconditionalFormatting3IconsSetType>)(_worksheet.ConditionalFormatting.AddRule( | |
| eExcelConditionalFormattingRuleType.ThreeIconSet, | |
| _address)); | |
| rule.IconSet = IconSet; | |
| return rule; | |
| } | |
| /// <summary> | |
| /// Adds a FourIconSet rule | |
| /// </summary> | |
| /// <param name="IconSet"></param> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingFourIconSet<eExcelconditionalFormatting4IconsSetType> AddFourIconSet(eExcelconditionalFormatting4IconsSetType IconSet) | |
| { | |
| var rule = (IExcelConditionalFormattingFourIconSet<eExcelconditionalFormatting4IconsSetType>)(_worksheet.ConditionalFormatting.AddRule( | |
| eExcelConditionalFormattingRuleType.FourIconSet, | |
| _address)); | |
| rule.IconSet = IconSet; | |
| return rule; | |
| } | |
| /// <summary> | |
| /// Adds a FiveIconSet rule | |
| /// </summary> | |
| /// <param name="IconSet"></param> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingFiveIconSet AddFiveIconSet(eExcelconditionalFormatting5IconsSetType IconSet) | |
| { | |
| var rule = (IExcelConditionalFormattingFiveIconSet)(_worksheet.ConditionalFormatting.AddRule( | |
| eExcelConditionalFormattingRuleType.FiveIconSet, | |
| _address)); | |
| rule.IconSet = IconSet; | |
| return rule; | |
| } | |
| /// <summary> | |
| /// Adds a Databar rule | |
| /// </summary> | |
| /// <param name="Color">The color of the databar</param> | |
| /// <returns></returns> | |
| public IExcelConditionalFormattingDataBarGroup AddDatabar(System.Drawing.Color Color) | |
| { | |
| var rule = (IExcelConditionalFormattingDataBarGroup)(_worksheet.ConditionalFormatting.AddRule( | |
| eExcelConditionalFormattingRuleType.DataBar, | |
| _address)); | |
| rule.Color = Color; | |
| return rule; | |
| } | |
| #endregion Conditional Formatting Rule Types | |
| } | |
| } |