2017-04-01 3 views

Antwort

1

dass würde davon abhängen, was der Inhalt der Zelle und die Einstellungen des Betriebsprüfer:

http://epplus.codeplex.com/SourceControl/latest#EPPlus/DataValidation/ExcelDataValidationOperator.cs

/// <summary> 
/// Operator for comparison between Formula and Formula2 in a validation. 
/// </summary> 
public enum ExcelDataValidationOperator 
{ 
    any, 
    equal, 
    notEqual, 
    lessThan, 
    lessThanOrEqual, 
    greaterThan, 
    greaterThanOrEqual, 
    between, 
    notBetween 
} 

Die ExcelDataValidationDateTime (schließlich) leitet sich von ExcelDataValidationWithFormula<IExcelDataValidationFormulaDateTime> die die Implemenation von Validate() enthält:

http://epplus.codeplex.com/SourceControl/latest#EPPlus/DataValidation/ExcelDataValidationWithFormula.cs

public override void Validate() 
{ 
    base.Validate(); 
    if (Operator == ExcelDataValidationOperator.between || Operator == ExcelDataValidationOperator.notBetween) 
    { 
     if (string.IsNullOrEmpty(Formula2Internal)) 
     { 
      throw new InvalidOperationException("Validation of " + Address.Address + " failed: Formula2 must be set if operator is 'between' or 'notBetween'"); 
     } 
    } 
} 

So wird es eine Ausnahme (ungültig) ausgelöst wird, wenn die Validierungsoperation ist entweder ExcelDataValidationOperator.between oder ExcelDataValidationOperator.notBetween und Forumla2 nicht gesetzt ist (nicht mit den primären Formula zu verwechseln). Mit anderen Worten, es betrachtet den Validator als ungültig, wenn Sie eine Operation verwenden, die ZWEI Werte/Formeln zum Vergleichen erfordert, aber nur eine gesetzt ist.

+0

Danke, also validiert es nicht den Zellinhalt? Content-Validierung ist manuell durchzuführen? –

+0

@AlirezaAhmadiRad Zur Entwurfszeit, nein, validiert diese Funktion den Inhalt nicht nur die Definition des Validators selbst. Wenn der Benutzer die Excel-Datei öffnet und Inhalt hinzufügt, überprüft die Validierung ihre Eingabe. Was die Validierung des Zellenwerts im Code betrifft, glaube ich nicht, dass EPPlus die Fähigkeit hat, wie ich vermute, erwarten, dass der Entwickler damit umgehen wird. – Ernie