/*package*/ private void SetType(CellType type) { switch (type) { case CellType.Numeric: { _value = new NumericValue(); break; } case CellType.String: { PlainStringValue sval = new PlainStringValue(); if (_value != null) { // if a cell is not blank then convert the old value to string String str = ConvertCellValueToString(); sval.Value = str; } _value = sval; break; } case CellType.Formula: { _value = new NumericFormulaValue(); break; } case CellType.Blank: { _value = new BlankValue(); break; } case CellType.Boolean: { BooleanValue bval = new BooleanValue(); if (_value != null) { // if a cell is not blank then convert the old value to string bool val = convertCellValueToBoolean(); bval.Value = val; } _value = bval; break; } case CellType.Error: { _value = new ErrorValue(); break; } default: { throw new ArgumentException("Illegal type " + type); } } }
private void EnsurePlainStringType() { if (_value.GetType() != CellType.String || ((StringValue)_value).IsRichText()) { _value = new PlainStringValue(); } }
private void EnsureRichTextStringType() { if (_value.GetType() != CellType.String || !((StringValue)_value).IsRichText()) { _value = new RichTextValue(); } }
private void setFormulaType(CellType type) { Value prevValue = _value; switch (type) { case CellType.Numeric: { _value = new NumericFormulaValue(); break; } case CellType.String: { _value = new StringFormulaValue(); break; } case CellType.Boolean: { _value = new BooleanFormulaValue(); break; } case CellType.Error: { _value = new ErrorFormulaValue(); break; } default: { throw new ArgumentException("Illegal type " + type); } } // if we had a Formula before, we should copy over the _value of the formula if (prevValue is FormulaValue) { ((FormulaValue)_value).Value = ((FormulaValue)prevValue).Value; } }
public void RemoveFormula() { if (CellType != CellType.Formula) { return; } switch (CachedFormulaResultType) { case CellType.Numeric: double numericValue = ((NumericFormulaValue)_value).PreEvaluatedValue; _value = new NumericValue(); ((NumericValue)_value).Value = numericValue; break; case CellType.String: String stringValue = ((StringFormulaValue)_value).PreEvaluatedValue; _value = new PlainStringValue(); ((PlainStringValue)_value).Value = stringValue; break; case CellType.Boolean: bool booleanValue = ((BooleanFormulaValue)_value).PreEvaluatedValue; _value = new BooleanValue(); ((BooleanValue)_value).Value = booleanValue; break; case CellType.Error: byte errorValue = (byte)((ErrorFormulaValue)_value).PreEvaluatedValue; _value = new ErrorValue(); ((ErrorValue)_value).Value = errorValue; break; default: throw new InvalidOperationException(); } }