Пример #1
0
        public ExcelDataValidationFormulaList(XmlNamespaceManager namespaceManager, XmlNode itemNode, string formulaPath)
            : base(namespaceManager, itemNode, formulaPath)
        {
            Require.Argument(formulaPath).IsNotNullOrEmpty("formulaPath");
            _formulaPath = formulaPath;
            var values = new DataValidationList();

            values.ListChanged += new EventHandler <EventArgs>(values_ListChanged);
            Values              = values;
            SetInitialValues();
        }
Пример #2
0
 private void WriteWorkSheet_DataValidations_formulas_list(DataValidationList listItem, XElement dataValidationNode)
 {
     dataValidationNode.Add(new XElement(XName.Get("formula1", ExcelCommon.Schema_WorkBook_Main.NamespaceName), listItem.Formula.GetValueAsString()));
 }
Пример #3
0
 private void ReadWorkSheet_dataValidations_ItemList(DataValidationList dvList, XElement node)
 {
     XElement formulaNode = node.Element(XName.Get("formula1", ExcelCommon.Schema_WorkBook_Main.NamespaceName));
     SetListFormula(dvList, formulaNode);
 }
Пример #4
0
 private void SetListFormula(DataValidationList dvList, XElement formulaNode)
 {
     if (formulaNode != null)
     {
         var @value = formulaNode.Value;
         if (!string.IsNullOrEmpty(@value))
         {
             if (@value.StartsWith("\"") && @value.EndsWith("\""))
             {
                 @value = @value.TrimStart('"').TrimEnd('"');
                 var items = @value.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                 foreach (var item in items)
                 {
                     dvList.Formula.Values.Add(item);
                 }
             }
             else
             {
                 dvList.Formula.Formula = @value;
             }
         }
     }
 }
Пример #5
0
 private void ReadWorkSheet_dataValidations(WorkSheet target, XElement sheetNode)
 {
     target._Validations = new DataValidationCollection(target);
     foreach (XElement node in sheetNode.Elements(XName.Get("dataValidation", ExcelCommon.Schema_WorkBook_Main.NamespaceName)))
     {
         XAttribute dvXA = node.Attribute(XName.Get("type"));
         if (dvXA != null)
         {
             DataValidationType dvType = DataValidationType.GetBySchemaName(dvXA.Value);
             string address = node.Attribute(XName.Get("sqref")).Value;
             IDataValidation item = null;
             switch (dvType.Type)
             {
                 case ExcelDataValidationType.TextLength:
                 case ExcelDataValidationType.Whole:
                     {
                         DataValidationInt dvint = new DataValidationInt(address, dvType);
                         ReadWorkSheet_dataValidations_Item(dvint, node);
                         ReadWorkSheet_dataValidations_ItemInt(dvint, node);
                         item = dvint;
                         break;
                     }
                 case ExcelDataValidationType.Decimal:
                     {
                         DataValidationDecimal dvDecima = new DataValidationDecimal(address, dvType);
                         ReadWorkSheet_dataValidations_Item(dvDecima, node);
                         ReadWorkSheet_dataValidations_ItemDecima(dvDecima, node);
                         item = dvDecima;
                         break;
                     }
                 case ExcelDataValidationType.List:
                     {
                         DataValidationList dvList = new DataValidationList(address, dvType);
                         ReadWorkSheet_dataValidations_Item(dvList, node);
                         ReadWorkSheet_dataValidations_ItemList(dvList, node);
                         item = dvList;
                         break;
                     }
                 case ExcelDataValidationType.DateTime:
                     {
                         DataValidationDateTime dvDateTime = new DataValidationDateTime(address, dvType);
                         ReadWorkSheet_dataValidations_Item(dvDateTime, node);
                         ReadWorkSheet_dataValidations_ItemDateTime(dvDateTime, node);
                         item = dvDateTime;
                         break;
                     }
                 case ExcelDataValidationType.Time:
                     {
                         DataValidationTime dvTime = new DataValidationTime(address, dvType);
                         ReadWorkSheet_dataValidations_Item(dvTime, node);
                         ReadWorkSheet_dataValidations_ItemTime(dvTime, node);
                         item = dvTime;
                         break;
                     }
                 case ExcelDataValidationType.Custom:
                     {
                         DataValidationCustom dvCustom = new DataValidationCustom(address, dvType);
                         ReadWorkSheet_dataValidations_Item(dvCustom, node);
                         ReadWorkSheet_dataValidations_ItemCustom(dvCustom, node);
                         item = dvCustom;
                         break;
                     }
                 default:
                     throw new InvalidOperationException("不存在验证: " + dvType.Type.ToString());
             }
             target._Validations.Add(item);
         }
     }
 }
Пример #6
0
        private void ReadWorkSheet_dataExtValidations(WorkSheet target, XElement sheetNode)
        {

            DataValidationList dvList = new DataValidationList(sheetNode.Element(XName.Get("sqref", ExcelCommon.Schema_Ext_Sqref)).Value, DataValidationType.List);
            ReadWorkSheet_dataValidations_Item(dvList, sheetNode);
            ReadWorkSheet_dataExtValidations_ItemList(dvList, sheetNode);
            if (target._Validations == null)
            {
                target._Validations = new DataValidationCollection(target);
            }
            target._Validations.Add(dvList);
        }