| /******************************************************************************* |
| * 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 |
| } |
| } |