Exemplo n.º 1
0
        private void ReadWorkSheet_dataValidations_ItemDecima(DataValidationDecimal dvDecima, XElement node)
        {
            XElement formulaNode = node.Element(XName.Get("formula1", ExcelCommon.Schema_WorkBook_Main.NamespaceName));
            if (formulaNode != null)
            {
                DataValidationFormulaDecimal formulaValue = new DataValidationFormulaDecimal();
                ReadWorkSheet_dataValidations_ItemDecima_formula(formulaNode.Value, ref formulaValue);
                dvDecima.Formula = formulaValue;
            }

            formulaNode = node.Element(XName.Get("formula2", ExcelCommon.Schema_WorkBook_Main.NamespaceName));
            if (formulaNode != null)
            {
                DataValidationFormulaDecimal formulaValue = new DataValidationFormulaDecimal();
                ReadWorkSheet_dataValidations_ItemDecima_formula(formulaNode.Value, ref formulaValue);
                dvDecima.Formula2 = formulaValue;
            }
        }
Exemplo n.º 2
0
        private void WriteWorkSheet_DataValidations_formulas_decimal(DataValidationDecimal decimalItem, XElement dataValidationNode)
        {
            if (decimalItem.ValidationType.AllowOperator)
            {
                if (decimalItem.Operator != ExcelDataValidationOperator.between)
                {
                    dataValidationNode.Add(new XAttribute(XName.Get("operator"), decimalItem.Operator.ToString()));
                }
            }

            dataValidationNode.Add(new XElement(XName.Get("formula1", ExcelCommon.Schema_WorkBook_Main.NamespaceName), decimalItem.Formula.GetValueAsString()));
            if (decimalItem.Operator == ExcelDataValidationOperator.between || decimalItem.Operator == ExcelDataValidationOperator.notBetween)
            {
                dataValidationNode.Add(new XElement(XName.Get("formula2", ExcelCommon.Schema_WorkBook_Main.NamespaceName), decimalItem.Formula2.GetValueAsString()));
            }
        }
Exemplo n.º 3
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);
         }
     }
 }