/// <summary> /// /// </summary> /// <param name="type"></param> /// <returns></returns> public static string GetAttributeByType( eExcelConditionalFormattingValueObjectType type) { switch (type) { case eExcelConditionalFormattingValueObjectType.Min: return(ExcelConditionalFormattingConstants.CfvoType.Min); case eExcelConditionalFormattingValueObjectType.Max: return(ExcelConditionalFormattingConstants.CfvoType.Max); case eExcelConditionalFormattingValueObjectType.Num: return(ExcelConditionalFormattingConstants.CfvoType.Num); case eExcelConditionalFormattingValueObjectType.Formula: return(ExcelConditionalFormattingConstants.CfvoType.Formula); case eExcelConditionalFormattingValueObjectType.Percent: return(ExcelConditionalFormattingConstants.CfvoType.Percent); case eExcelConditionalFormattingValueObjectType.Percentile: return(ExcelConditionalFormattingConstants.CfvoType.Percentile); } return(string.Empty); }
/// <summary> /// Initialize the <see cref="ExcelConditionalFormattingColorScaleValue"/> /// </summary> /// <param name="position"></param> /// <param name="type"></param> /// <param name="color"></param> /// <param name="value"></param> /// <param name="formula"></param> /// <param name="ruleType"></param> /// <param name="priority"></param> /// <param name="address"></param> /// <param name="worksheet"></param> /// <param name="namespaceManager"></param> internal ExcelConditionalFormattingColorScaleValue( eExcelConditionalFormattingValueObjectPosition position, eExcelConditionalFormattingValueObjectType type, Color color, double value, string formula, eExcelConditionalFormattingRuleType ruleType, ExcelAddress address, int priority, ExcelWorksheet worksheet, XmlNamespaceManager namespaceManager) : this( position, type, color, value, formula, ruleType, address, priority, worksheet, null, namespaceManager) { }
/// <summary> /// /// </summary> /// <param name="type"></param> /// <returns></returns> public static string GetAttributeByType( eExcelConditionalFormattingValueObjectType type) { switch (type) { case eExcelConditionalFormattingValueObjectType.Min: return ExcelConditionalFormattingConstants.CfvoType.Min; case eExcelConditionalFormattingValueObjectType.Max: return ExcelConditionalFormattingConstants.CfvoType.Max; case eExcelConditionalFormattingValueObjectType.Num: return ExcelConditionalFormattingConstants.CfvoType.Num; case eExcelConditionalFormattingValueObjectType.Formula: return ExcelConditionalFormattingConstants.CfvoType.Formula; case eExcelConditionalFormattingValueObjectType.Percent: return ExcelConditionalFormattingConstants.CfvoType.Percent; case eExcelConditionalFormattingValueObjectType.Percentile: return ExcelConditionalFormattingConstants.CfvoType.Percentile; } return string.Empty; }
/// <summary> /// Initialize the <see cref="ExcelConditionalFormattingColorScaleValue"/> /// </summary> /// <param name="type"></param> /// <param name="color"></param> /// <param name="ruleType"></param> /// <param name="priority"></param> /// <param name="address"></param> /// <param name="worksheet"></param> /// <param name="namespaceManager"></param> internal ExcelConditionalFormattingIconDataBarValue( eExcelConditionalFormattingValueObjectType type, Color color, eExcelConditionalFormattingRuleType ruleType, ExcelAddress address, int priority, ExcelWorksheet worksheet, XmlNamespaceManager namespaceManager) : this( type, 0, null, ruleType, address, priority, worksheet, null, namespaceManager) { }
/// <summary> /// Initialize the <see cref="ExcelConditionalFormattingColorScaleValue"/> /// </summary> /// <param name="type"></param> /// <param name="value"></param> /// <param name="formula"></param> /// <param name="ruleType"></param> /// <param name="priority"></param> /// <param name="address"></param> /// <param name="worksheet"></param> /// <param name="namespaceManager"></param> internal ExcelConditionalFormattingIconDataBarValue( eExcelConditionalFormattingValueObjectType type, double value, string formula, eExcelConditionalFormattingRuleType ruleType, ExcelAddress address, int priority, ExcelWorksheet worksheet, XmlNamespaceManager namespaceManager) : this( type, value, formula, ruleType, address, priority, worksheet, null, namespaceManager) { }
/// <summary> /// Initialize the <see cref="ExcelConditionalFormattingColorScaleValue"/> /// </summary> /// <param name="position"></param> /// <param name="type"></param> /// <param name="color"></param> /// <param name="ruleType"></param> /// <param name="priority"></param> /// <param name="address"></param> /// <param name="worksheet"></param> /// <param name="itemElementNode"></param> /// <param name="namespaceManager"></param> internal ExcelConditionalFormattingColorScaleValue( eExcelConditionalFormattingValueObjectPosition position, eExcelConditionalFormattingValueObjectType type, Color color, eExcelConditionalFormattingRuleType ruleType, ExcelAddress address, int priority, ExcelWorksheet worksheet, XmlNode itemElementNode, XmlNamespaceManager namespaceManager) : this( position, type, color, 0, null, ruleType, address, priority, worksheet, itemElementNode, namespaceManager) { }
/****************************************************************************************/ #region Constructors /// <summary> /// Initialize the cfvo (§18.3.1.11) node /// </summary> /// <param name="position"></param> /// <param name="type"></param> /// <param name="color"></param> /// <param name="value"></param> /// <param name="formula"></param> /// <param name="ruleType"></param> /// <param name="address"></param> /// <param name="priority"></param> /// <param name="worksheet"></param> /// <param name="itemElementNode">The cfvo (§18.3.1.11) node parent. Can be any of the following: /// colorScale (§18.3.1.16); dataBar (§18.3.1.28); iconSet (§18.3.1.49)</param> /// <param name="namespaceManager"></param> internal ExcelConditionalFormattingColorScaleValue( eExcelConditionalFormattingValueObjectPosition position, eExcelConditionalFormattingValueObjectType type, Color color, double value, string formula, eExcelConditionalFormattingRuleType ruleType, ExcelAddress address, int priority, ExcelWorksheet worksheet, XmlNode itemElementNode, XmlNamespaceManager namespaceManager) : base( namespaceManager, itemElementNode) { Require.Argument(priority).IsInRange(1, int.MaxValue, "priority"); Require.Argument(address).IsNotNull("address"); Require.Argument(worksheet).IsNotNull("worksheet"); // Save the worksheet for private methods to use _worksheet = worksheet; // Schema order list SchemaNodeOrder = new string[] { ExcelConditionalFormattingConstants.Nodes.Cfvo, ExcelConditionalFormattingConstants.Nodes.Color }; // Check if the parent does not exists if (itemElementNode == null) { // Get the parent node path by the rule type string parentNodePath = ExcelConditionalFormattingValueObjectType.GetParentPathByRuleType( ruleType); // Check for en error (rule type does not have <cfvo>) if (parentNodePath == string.Empty) { throw new Exception( ExcelConditionalFormattingConstants.Errors.MissingCfvoParentNode); } // Point to the <cfvo> parent node itemElementNode = _worksheet.WorksheetXml.SelectSingleNode( string.Format( "//{0}[{1}='{2}']/{3}[{4}='{5}']/{6}", // {0} ExcelConditionalFormattingConstants.Paths.ConditionalFormatting, // {1} ExcelConditionalFormattingConstants.Paths.SqrefAttribute, // {2} address.Address, // {3} ExcelConditionalFormattingConstants.Paths.CfRule, // {4} ExcelConditionalFormattingConstants.Paths.PriorityAttribute, // {5} priority, // {6} parentNodePath), _worksheet.NameSpaceManager); // Check for en error (rule type does not have <cfvo>) if (itemElementNode == null) { throw new Exception( ExcelConditionalFormattingConstants.Errors.MissingCfvoParentNode); } } // Point to the <cfvo> parent node (<colorScale>, <dataBar> or <iconSet>) // This is different than normal, as TopNode does not point to the node itself but to // its PARENT. Later, in the CreateNodeByOrdem method the TopNode will be updated. TopNode = itemElementNode; // Save the attributes Position = position; RuleType = ruleType; Type = type; Color = color; Value = value; Formula = formula; }
/****************************************************************************************/ #region Constructors /// <summary> /// Initialize the cfvo (§18.3.1.11) node /// </summary> /// <param name="type"></param> /// <param name="value"></param> /// <param name="formula"></param> /// <param name="ruleType"></param> /// <param name="address"></param> /// <param name="priority"></param> /// <param name="worksheet"></param> /// <param name="itemElementNode">The cfvo (§18.3.1.11) node parent. Can be any of the following: /// colorScale (§18.3.1.16); dataBar (§18.3.1.28); iconSet (§18.3.1.49)</param> /// <param name="namespaceManager"></param> internal ExcelConditionalFormattingIconDataBarValue( eExcelConditionalFormattingValueObjectType type, double value, string formula, eExcelConditionalFormattingRuleType ruleType, ExcelAddress address, int priority, ExcelWorksheet worksheet, XmlNode itemElementNode, XmlNamespaceManager namespaceManager) : this( ruleType, address, worksheet, itemElementNode, namespaceManager) { Require.Argument(priority).IsInRange(1, int.MaxValue, "priority"); // Check if the parent does not exists if (itemElementNode == null) { // Get the parent node path by the rule type string parentNodePath = ExcelConditionalFormattingValueObjectType.GetParentPathByRuleType( ruleType); // Check for en error (rule type does not have <cfvo>) if (parentNodePath == string.Empty) { throw new Exception( ExcelConditionalFormattingConstants.Errors.MissingCfvoParentNode); } // Point to the <cfvo> parent node itemElementNode = _worksheet.WorksheetXml.SelectSingleNode( string.Format( "//{0}[{1}='{2}']/{3}[{4}='{5}']/{6}", // {0} ExcelConditionalFormattingConstants.Paths.ConditionalFormatting, // {1} ExcelConditionalFormattingConstants.Paths.SqrefAttribute, // {2} address.Address, // {3} ExcelConditionalFormattingConstants.Paths.CfRule, // {4} ExcelConditionalFormattingConstants.Paths.PriorityAttribute, // {5} priority, // {6} parentNodePath), _worksheet.NameSpaceManager); // Check for en error (rule type does not have <cfvo>) if (itemElementNode == null) { throw new Exception( ExcelConditionalFormattingConstants.Errors.MissingCfvoParentNode); } } TopNode = itemElementNode; // Save the attributes RuleType = ruleType; Type = type; Value = value; Formula = formula; }
/// <summary> /// Initialize the <see cref="ExcelConditionalFormattingColorScaleValue"/> /// </summary> /// <param name="position"></param> /// <param name="type"></param> /// <param name="color"></param> /// <param name="ruleType"></param> /// <param name="priority"></param> /// <param name="address"></param> /// <param name="worksheet"></param> /// <param name="namespaceManager"></param> internal ExcelConditionalFormattingColorScaleValue( eExcelConditionalFormattingValueObjectPosition position, eExcelConditionalFormattingValueObjectType type, Color color, eExcelConditionalFormattingRuleType ruleType, ExcelAddress address, int priority, ExcelWorksheet worksheet, XmlNamespaceManager namespaceManager) : this( position, type, color, 0, null, ruleType, address, priority, worksheet, null, namespaceManager) { }
/// <summary> /// Initialize the <see cref="ExcelConditionalFormattingValueObject"/> /// </summary> /// <param name="position"></param> /// <param name="type"></param> /// <param name="color"></param> /// <param name="value"></param> /// <param name="formula"></param> /// <param name="ruleType"></param> /// <param name="priority"></param> /// <param name="address"></param> /// <param name="worksheet"></param> /// <param name="namespaceManager"></param> internal ExcelConditionalFormattingValueObject( eExcelConditionalFormattingValueObjectPosition position, eExcelConditionalFormattingValueObjectType type, Color color, double value, string formula, eExcelConditionalFormattingRuleType ruleType, ExcelAddress address, int priority, ExcelWorksheet worksheet, XmlNamespaceManager namespaceManager) : this(position, type, color, value, formula, ruleType, address, priority, worksheet, null, namespaceManager) { }