/// <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());
     }
 }
Example #2
0
 /// <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)
 {
 }
Example #3
0
 /// <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)
 {
 }
Example #4
0
 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);
 }
Example #14
0
 /// <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)
 {
 }
Example #15
0
 /// <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)
 {
 }
Example #16
0
 /// <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);
 }
Example #19
0
 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)
 {
 }