/// <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">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="namespaceManager">for test purposes</param> /// <param name="internalValidationType"><see cref="InternalValidationType"/></param> internal ExcelDataValidationWithFormula(ExcelWorksheet worksheet, string uid, string address, ExcelDataValidationType validationType, XmlNode itemElementNode, XmlNamespaceManager namespaceManager, InternalValidationType internalValidationType = InternalValidationType.DataValidation) : base(worksheet, uid, address, validationType, itemElementNode, namespaceManager, internalValidationType) { }
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">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> /// 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> internal static ExcelDataValidation Create(ExcelDataValidationType type, ExcelWorksheet worksheet, string address, XmlNode itemElementNode, InternalValidationType internalType, string uid) { Require.Argument(type).IsNotNull("validationType"); switch (type.Type) { case eDataValidationType.Any: return(new ExcelDataValidationAny(worksheet, uid, address, type, itemElementNode)); case eDataValidationType.TextLength: case eDataValidationType.Whole: return(new ExcelDataValidationInt(worksheet, uid, address, type, itemElementNode)); case eDataValidationType.Decimal: return(new ExcelDataValidationDecimal(worksheet, uid, address, type, itemElementNode)); case eDataValidationType.List: return(CreateListValidation(type, worksheet, address, itemElementNode, internalType, uid)); case eDataValidationType.DateTime: return(new ExcelDataValidationDateTime(worksheet, uid, address, type, itemElementNode)); case eDataValidationType.Time: return(new ExcelDataValidationTime(worksheet, uid, address, type, itemElementNode)); case eDataValidationType.Custom: return(new ExcelDataValidationCustom(worksheet, uid, address, type, itemElementNode)); default: throw new InvalidOperationException("Non supported validationtype: " + type.Type.ToString()); } }