コード例 #1
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);
 }
コード例 #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="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)
 {
 }
コード例 #3
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));
 }
コード例 #4
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)
 {
 }
コード例 #5
0
        /// <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());
            }
        }