/// <summary> /// Creates an instance of <see cref="ExcelDataValidation"/> out of the given parameters. /// </summary> /// <param name="type"></param> /// <param name="worksheet"></param> /// <param name="address"></param> /// <param name="itemElementNode"></param> /// <returns></returns> public static ExcelDataValidation Create(ExcelDataValidationType type, ExcelWorksheet worksheet, string address, XmlNode itemElementNode) { Require.Argument(type).IsNotNull("validationType"); switch (type.Type) { case eDataValidationType.TextLength: case eDataValidationType.Whole: return new ExcelDataValidationInt(worksheet, address, type, itemElementNode); case eDataValidationType.Decimal: return new ExcelDataValidationDecimal(worksheet, address, type, itemElementNode); case eDataValidationType.List: return new ExcelDataValidationList(worksheet, address, type, itemElementNode); case eDataValidationType.DateTime: return new ExcelDataValidationDateTime(worksheet, address, type, itemElementNode); case eDataValidationType.Time: return new ExcelDataValidationTime(worksheet, address, type, itemElementNode); case eDataValidationType.Custom: return new ExcelDataValidationCustom(worksheet, address, type, itemElementNode); default: throw new InvalidOperationException("Non supported validationtype: " + type.Type.ToString()); } }
/// <summary> /// Constructor /// </summary> /// <param name="worksheet">worksheet that owns the validation</param> /// <param name="uid">Uid of the data validation, format should be a Guid surrounded by curly braces.</param> /// <param name="itemElementNode">Xml top node (dataValidations)</param> /// <param name="validationType">Data validation type</param> /// <param name="address">address for data validation</param> /// <param name="internalValidationType">If the datavalidation is internal or in the extLst element</param> internal ExcelDataValidation(ExcelWorksheet worksheet, string uid, string address, ExcelDataValidationType validationType, XmlNode itemElementNode, InternalValidationType internalValidationType = InternalValidationType.DataValidation) : this(worksheet, uid, address, validationType, itemElementNode, null, internalValidationType) { }
/// <summary> /// Constructor /// </summary> /// <param name="worksheet">worksheet that owns the validation</param> /// <param name="itemElementNode">Xml top node (dataValidations)</param> /// <param name="validationType">Data validation type</param> /// <param name="address">address for data validation</param> internal ExcelDataValidation(ExcelWorksheet worksheet, string address, ExcelDataValidationType validationType, XmlNode itemElementNode) : this(worksheet, address, validationType, itemElementNode, null) { }
internal ExcelDataValidation(ExcelWorksheet worksheet, string address, ExcelDataValidationType validationType) : this(worksheet, address, validationType, null) { }
/// <summary> /// Constructor /// </summary> /// <param name="worksheet">Worksheet that owns the validation</param> /// <param name="itemElementNode">Xml top node (dataValidations)</param> /// <param name="validationType">Data validation type</param> /// <param name="address">address for data validation</param> /// <param name="namespaceManager">for test purposes</param> internal ExcelDataValidationWithFormula(ExcelWorksheet worksheet, string address, ExcelDataValidationType validationType, eDataValidationStorageType storageType, XmlNode itemElementNode, XmlNamespaceManager namespaceManager) : base(worksheet, address, validationType, storageType, itemElementNode, namespaceManager) { }
/// <summary> /// Constructor /// </summary> /// <param name="worksheet"></param> /// <param name="address"></param> /// <param name="validationType"></param> internal ExcelDataValidationWithFormula(ExcelWorksheet worksheet, string address, ExcelDataValidationType validationType) : this(worksheet, address, validationType, eDataValidationStorageType.Normal, null) { }
/// <summary> /// Constructor /// </summary> /// <param name="worksheet"></param> /// <param name="uid">Uid of the data validation, format should be a Guid surrounded by curly braces.</param> /// <param name="address"></param> /// <param name="validationType"></param> /// <param name="itemElementNode"></param> /// <param name="namespaceManager"></param> internal ExcelDataValidationAny(ExcelWorksheet worksheet, string uid, string address, ExcelDataValidationType validationType, XmlNode itemElementNode, XmlNamespaceManager namespaceManager) : base(worksheet, uid, address, validationType, itemElementNode, namespaceManager) { }
/// <summary> /// Constructor which is only used for unit tests /// </summary> /// <param name="worksheet"></param> /// <param name="address"></param> /// <param name="validationType"></param> /// <param name="itemElementNode"></param> /// <param name="namespaceManager">For test purposes</param> internal ExcelDataValidationDecimal(ExcelWorksheet worksheet, string address, ExcelDataValidationType validationType, XmlNode itemElementNode, XmlNamespaceManager namespaceManager, eDataValidationStorageType storageType = eDataValidationStorageType.Normal) : base(worksheet, address, validationType, storageType, itemElementNode, namespaceManager) { if (storageType == eDataValidationStorageType.X14) { Formula = new ExcelDataValidationFormulaDecimal(NameSpaceManager, TopNode, _x14Formula1Path); Formula2 = new ExcelDataValidationFormulaDecimal(NameSpaceManager, TopNode, _x14Formula2Path); } else { Formula = new ExcelDataValidationFormulaDecimal(NameSpaceManager, TopNode, _formula1Path); Formula2 = new ExcelDataValidationFormulaDecimal(NameSpaceManager, TopNode, _formula2Path); } }
/// <summary> /// Constructor /// </summary> /// <param name="worksheet"></param> /// <param name="uid">Uid of the data validation, format should be a Guid surrounded by curly braces.</param> /// <param name="address"></param> /// <param name="validationType"></param> /// <param name="itemElementNode"></param> /// <param name="namespaceManager"></param> internal ExcelDataValidationDateTime(ExcelWorksheet worksheet, string uid, string address, ExcelDataValidationType validationType, XmlNode itemElementNode, XmlNamespaceManager namespaceManager) : base(worksheet, uid, address, validationType, itemElementNode, namespaceManager) { Formula = new ExcelDataValidationFormulaDateTime(NameSpaceManager, TopNode, GetFormula1Path(), uid); Formula2 = new ExcelDataValidationFormulaDateTime(NameSpaceManager, TopNode, GetFormula2Path(), uid); }
/// <summary> /// Constructor /// </summary> /// <param name="worksheet"></param> /// <param name="address"></param> /// <param name="validationType"></param> /// <param name="itemElementNode"></param> internal ExcelDataValidationTime(ExcelWorksheet worksheet, string address, ExcelDataValidationType validationType, XmlNode itemElementNode) : base(worksheet, address, validationType, itemElementNode) { Formula = new ExcelDataValidationFormulaTime(NameSpaceManager, TopNode, _formula1Path); Formula2 = new ExcelDataValidationFormulaTime(NameSpaceManager, TopNode, _formula2Path); }
/// <summary> /// Constructor /// </summary> /// <param name="worksheet">Worksheet that owns the validation</param> /// <param name="itemElementNode">Xml top node (dataValidations)</param> /// <param name="validationType">Data validation type</param> /// <param name="address">address for data validation</param> internal ExcelDataValidationWithFormula2(ExcelWorksheet worksheet, string address, ExcelDataValidationType validationType, XmlNode itemElementNode) : base(worksheet, address, validationType, itemElementNode) { }
/// <summary> /// Constructor /// </summary> /// <param name="worksheet"></param> /// <param name="uid">Uid of the data validation, format should be a Guid surrounded by curly braces.</param> /// <param name="address"></param> /// <param name="validationType"></param> internal ExcelDataValidationInt(ExcelWorksheet worksheet, string uid, string address, ExcelDataValidationType validationType) : base(worksheet, uid, address, validationType) { Formula = new ExcelDataValidationFormulaInt(worksheet.NameSpaceManager, TopNode, GetFormula1Path(), uid); Formula2 = new ExcelDataValidationFormulaInt(worksheet.NameSpaceManager, TopNode, GetFormula2Path(), uid); }
/// <summary> /// Constructor /// </summary> /// <param name="worksheet"></param> /// <param name="uid">Uid of the data validation, format should be a Guid surrounded by curly braces.</param> /// <param name="address"></param> /// <param name="validationType"></param> /// <param name="itemElementNode"></param> internal ExcelDataValidationList(ExcelWorksheet worksheet, string uid, string address, ExcelDataValidationType validationType, XmlNode itemElementNode) : base(worksheet, uid, address, validationType, itemElementNode) { Formula = new ExcelDataValidationFormulaList(NameSpaceManager, TopNode, GetFormula1Path(), uid); }
/// <summary> /// Constructor /// </summary> /// <param name="worksheet"></param> /// <param name="address"></param> /// <param name="validationType"></param> /// <param name="itemElementNode"></param> /// <param name="namespaceManager"></param> internal ExcelDataValidationAny(ExcelWorksheet worksheet, string address, ExcelDataValidationType validationType, XmlNode itemElementNode, XmlNamespaceManager namespaceManager) : base(worksheet, address, validationType, itemElementNode, namespaceManager) { }
/// <summary> /// Constructor /// </summary> /// <param name="worksheet"></param> /// <param name="address"></param> /// <param name="validationType"></param> internal ExcelDataValidationAny(ExcelWorksheet worksheet, string address, ExcelDataValidationType validationType) : base(worksheet, address, validationType) { }
/// <summary> /// Constructor /// </summary> /// <param name="worksheet">worksheet that owns the validation</param> /// <param name="uid">Uid of the data validation, format should be a Guid surrounded by curly braces.</param> /// <param name="itemElementNode">Xml top node (dataValidations) when importing xml</param> /// <param name="validationType">Data validation type</param> /// <param name="address">address for data validation</param> /// <param name="namespaceManager">Xml Namespace manager</param> /// <param name="internalValidationType"><see cref="InternalValidationType"/></param> internal ExcelDataValidation(ExcelWorksheet worksheet, string uid, string address, ExcelDataValidationType validationType, XmlNode itemElementNode, XmlNamespaceManager namespaceManager, InternalValidationType internalValidationType = InternalValidationType.DataValidation) : base(namespaceManager != null ? namespaceManager : worksheet.NameSpaceManager) { Require.Argument(uid).IsNotNullOrEmpty("uid"); Require.Argument(address).IsNotNullOrEmpty("address"); InternalValidationType = internalValidationType; InitNodeOrder(validationType); address = CheckAndFixRangeAddress(address); if (itemElementNode == null) { TopNode = worksheet.WorksheetXml.SelectSingleNode(GetTopNodeName(), worksheet.NameSpaceManager); itemElementNode = CreateNode(GetItemElementNodeName(), false, true); TopNode.AppendChild(itemElementNode); } TopNode = itemElementNode; ValidationType = validationType; Uid = uid; Address = new ExcelAddress(address); }
/// <summary> /// Constructor /// </summary> /// <param name="worksheet"></param> /// <param name="address"></param> /// <param name="validationType"></param> internal ExcelDataValidationDecimal(ExcelWorksheet worksheet, string address, ExcelDataValidationType validationType) : base(worksheet, address, validationType) { Formula = new ExcelDataValidationFormulaDecimal(NameSpaceManager, TopNode, _formula1Path); Formula2 = new ExcelDataValidationFormulaDecimal(NameSpaceManager, TopNode, _formula2Path); }
/// <summary> /// Constructor /// </summary> /// <param name="worksheet"></param> /// <param name="address"></param> /// <param name="validationType"></param> /// <param name="itemElementNode"></param> /// <param name="namespaceManager"></param> internal ExcelDataValidationCustom(ExcelWorksheet worksheet, string address, ExcelDataValidationType validationType, XmlNode itemElementNode, XmlNamespaceManager namespaceManager) : base(worksheet, address, validationType, itemElementNode, namespaceManager) { Formula = new ExcelDataValidationFormulaCustom(NameSpaceManager, TopNode, _formula1Path); }
internal static ExcelDataValidationWithFormula <IExcelDataValidationFormulaList> CreateListValidation(ExcelDataValidationType type, ExcelWorksheet worksheet, string address, XmlNode itemElementNode, InternalValidationType internalType, string uid) { if (internalType == InternalValidationType.DataValidation) { return(new ExcelDataValidationList(worksheet, uid, address, type, itemElementNode)); } // extLst return(new ExcelDataValidationExtList(worksheet, uid, address, type, itemElementNode)); }
/// <summary> /// Constructor /// </summary> /// <param name="worksheet"></param> /// <param name="uid">Uid of the data validation, format should be a Guid surrounded by curly braces.</param> /// <param name="address"></param> /// <param name="validationType"></param> internal ExcelDataValidationAny(ExcelWorksheet worksheet, string uid, string address, ExcelDataValidationType validationType) : base(worksheet, uid, address, validationType) { }