GetOwnerData and
A external reference has the form "//object_name/object_specific_part". The control identified by object_name must implement IUltraCalcReference and be able to parse object_specific_part.
An internal reference is a reference within the same control that implements this instance of the interface. An internal reference can be absolute or relative. Absolute references must begin with the "/" character. Such references must be created relative to the root object in the control. Relative references are created relative to this reference.
Note that in complex reference models, multiple reference strings may point to the same underlying object. The reference string used to create the reference must be available to other methods such as ResolveReference, References and MarkRelativeIndicies. Consequently, if the reference string is relative, a proxy reference object should be returned that retains the relative reference string.
Returns a meaningful object context for the reference. This could be an UltraGridCell, UltraGridColumn, NamedReference, Control, etc.
All types within the registered assembly are enumerated and any that derive from
Users can build custom functions used in formulas by sub-classing the
Formulas are entered into the calculation network by first compiling the formula string using the Compile method on the UltraCalcFormula class, then passing the UltraCalcFormula instance to the AddFormula method.
References to formulas that are deleted are recalculated.
This method performs a partial recalculation cycle, yielding after the given number of ticks has expired. This method should be repeately called until it returns false denoting all dirty formulas have been recalculated.
This method recalculates all dirty formulas before returning.
Use the function factory to access detailed information about each function available to formulas compiled against this instance of the calc engine.
If the reference is already in the references or dynamic references collection of the formula, this will have no effect.
Base reference associated with the formula. For example, in the case of a column formula, BaseReference would be the column reference.
The base reference of a formula is sometimes referred to as the Left-Hand-Side (LHS)of an expression. It represents the location within the grid, or other object, whose value is being computed by the given formula. References within the formula expression my be fully qualified or relative to the formula's base reference. For example, if we want to calculate a "[Total]" column in a grid we might have a formula such as "[Units] * [Price]". Each cells within the "Total" column would be computed multiplying the "Units" cell and "Price" cell for row in the band.
Compiling a formula converts the in-fix expression string into an intemediate post-fix form optimized for evaluation.
AVERAGE(value1, value2, ...)
Value1, value2, ... are one or more numeric values or references to numeric values. An average (arithmetic mean) is calculated by taking the sum of all values, and dividing by the number of values.
Each value is equally weighted. To obtain a weighted average, you can multiply each value by a weight in the expression.
AVERAGE( [Value1]*[Weight1], [Value2]*[Weight2], [Value3]*[Weight3])
SUM(value1,value2,...)
Value1, value2, ... are references for which you want to find the total value. Text representations of numbers and literal numeric constants that you specify in the list of arguments will be included in the sum. If value is a column or vector reference then the sum will be taken of all cells or values contained by the reference. Any error values in the argument list, or text that is not convertible to a numeric value, will produce an error.
CONCATENATE(text1, text2, ..., textN)
Text1, text2, ..., textN are multiple text values that you want to concatenate into one text string. These text values may be text strings, numbers (which will be converted into text), or a single value reference (such as a cell reference) containing such a value.
This function provides for elementary text processing in UltraCalc, such as when building message text or appending some connective text or punctuation to the results of evaluating other text-bearing expressions.
IF( boolean_test, result_if_true, [result_if_false])
Boolean_test is a value (or an UltraCalc expression) which the IF function evaluates to produce a boolean value of either TRUE or FALSE. The outcome of this test determines which result will be returned by the function.
Result_if_true is a value (or the outcome of another UltraCalc expression) that will be returned only when boolean_test has evaluated to the boolean value, TRUE.
Result_if_false is a value (or the outcome of another UltraCalc expression) that will be returned only when boolean_test has evaluated to the boolean value, FALSE.
The IF function allows you to write an UltraCalc expression that branches to one expression (when the boolean_test is TRUE) or another (when the boolean_test is FALSE) based on an arbitrary condition you have specified.
The result_if_false is not specified and boolean_test is FALSE, the IF function will return FALSE.
If boolean_test's evaluation produces an error value then neither Result_if_true nor Result_if_false will be evaluated. Instead, the IF function returns the error value from its evaluation of boolean_test.
ABS( value)
A number's absolute value is it's value without any sign. It represents the magnitude of a value while ignoring it's direction (positive or negative) on a number line or vector.
MOD(numerator, denominator)
Numerator is the number being divided by denominator. When denominator can only be taken from numerator a certain whole number of types (the quotient), any leftover is the remainder.
Denominator is the number dividing the numerator. Any remainder will have the sign of the denominator. This number cannot be zero, otherwise the MOD() function returns a #DIV/0 error.
If you want to perform integer division on these two numbers
then use the
QUOTIENT(numerator, denominator)
Numerator is a numeric value that will be divided by the denominator. It is sometimes called the dividend.
Denominator is the numeric value that divides the numerator. It is sometimes called the divisor. It cannot be zero or a #DIV/0 error value will be returned.
When either the numerator or the denominator is not a number, the QUOTIENT() function returns an error value (#VALUE!).
If you need the remainder from an integer division,
use the
PRODUCT( value1, value2, ..., valueN)
Value1 is the first number (the multiplicand) in a series of numbers that you want to multiply.
Value2 is the second number (the first multiplier) in a series of numbers that you want to multiply.
ValueN is the last number (the last multiplier) in a series of numbers that you want to multiply.
This function offers a convenience when you need to multiply many numbers or expressions at one time.
POWER(value, exponent)
Value is a numeric value or reference to a numeric value which you want to raise to a power.
Exponent is a real number power to which value is to be raised. Imaginary exponents are not supported.
Common applications of the POWER() function occur when you need to multiply a number against itself multiple times. For example, it is common in many computer applications to create bit mask values by raising the value 2 to integer exponents, which produce a sequence such as (1, 2, 4, 8, 16, 32, 64, 128, ...)
The POWER() function additionally supports fractional exponents, and can be used to emulate other functions such as the quad root (raising to an exponent of 0.25, which is 1/4) or the inverse square (raising to an exponent of -2.0).
INT(value)
Value is a real numeric value that you want to
convert into a whole number. INT() is a more specialized version
of the
TRUNC(value, number_of_digits)
Value is a numeric value or reference to a numeric value that you want to truncate.
Number_of_digits specifies the precision at which truncation should occur. By default, truncation occurs zero places right of the decimal point which will produce an integer.
Truncation always discards the fractional value, causing the
Value to move closer to zero (whether it was positive or negative
before the truncation). It differs from the
COUNT(Value1, Value2, ..., ValueN)
Value1, value2, ... valueN can be references to different data structures, such as columns. Each numeric or date/time value is counted. Empty, error, boolean or text values that are not convertible into numeric values are not counted.
When a reference is a range reference, only those numeric and date/time values within the range will be counted.
TRUE() will always evaluate to the boolean value of TRUE. It takes no arguments.
FALSE() will always evaluate to the boolean value of FALSE. It takes no arguments.
NOT(boolean1)
Boolean1 is any boolean (TRUE or FALSE) value, or conditional statement (made up of any UltraCalc expression which itself evaluates to a boolean TRUE or FALSE value) to be inverted.
If boolean1 was TRUE, then the Logical-NOT would return FALSE. If boolean1 was FALSE, then the Logical-NOT would return TRUE.
If Boolean1 is an UltraCalc expression that evaluates to an error value, then the result of a Logical-NOT operation is undefined because an error value is neither TRUE nor FALSE.
AND(boolean1, boolean2, ...)
Boolean1, boolean2, ... are a list of boolean (TRUE or FALSE) values or conditional statements (any UltraCalc expression which itself evaluates to a boolean TRUE or FALSE value) to be evaluated for the constraint that all arguments should be TRUE (or conversely, that at least one argument should be FALSE.)
All arguments are tested (i.e., the logical-AND function does not use "short-circuit" evaluation, in which the function can stop executing as soon as the first argument having the boolean value, FALSE, has been processed.)
This function stops evaluating immediately when any argument results in an error value. An error value is neither TRUE nor FALSE, therefore the return value of the logical-AND function is undefined.
OR(boolean1, boolean2, ...)
Boolean1, boolean2, ... are a list of boolean (TRUE or FALSE) values or conditional statements (any UltraCalc expression which itself evaluates to a boolean TRUE or FALSE value) to be evaluated for the constraint that at least one argument should be TRUE (or conversely, that all arguments should be FALSE.)
All arguments are tested (i.e., the logical-OR function does not use "short-circuit" evaluation, in which the function can stop executing as soon as the first argument having the boolean value, TRUE, has been processed.)
This function stops evaluating immediately when any argument results in an error value. An error value is neither TRUE nor FALSE, therefore the return value of the logical-OR function is undefined.
MIN(Value1, value2, ..., valueN)
Value1, value2, ... valueN are any number of numeric values or references to numeric values from which you want the minimum value found. Arguments may be numbers, boolean values, text values convertible into numbers, or empty. Error values and text values that are not convertible into numbers will produce an error.
The minimum value for a series of numbers can be it's largest magnitude
negative number because larger magnitude negative numbers are less than smaller magnitude
negative numbers. For example, given the expression MIN( -1500, -50, 5, 150), the return value
is -1500 and not 5. To determine the numeric value with the smallest magnitude you would
use the
MIN( ABS(-1500), ABS(-50), ABS(5), ABS(150))
When the argument list is empty, MIN() returns zero.
MAX(Value1, value2, ..., valueN)
Value1, value2, ... valueN are any number of numeric values or references to numeric values from which you want the maximum value found. Arguments may be numbers, boolean values, text values convertible into numbers, or empty. Error values and text values that are not convertible into numbers will produce an error.
When the argument list is empty, MAX() returns zero.
EXP(exponent)
Exponent is the power to which the base, e, is raised. This gives the function it's characteristic "exponential" growth.
Euler's Number, e, is the value 2.718281828459..., and is also the base of the natural logarithm. You can represent the constant e within your UltraCalc formula by specifying EXP(1). The exponential function (and natural logarithm) have many applications in mathematics, engineering, and for modeling behavioral and statistical distributions commonly observed in nature and the social sciences.
ROUND(value, number_of_digits)
Value is a numeric value or reference to a numeric value that you want to round up or down.
Number_of_digits specifies the precision at which rounding should occur. This will be the place value which UltraCalc examines to round up or down. By default, rounding occurs zero places right of the decimal point produces an integer.
PI()
The mathematical constant pi represents the relationship between a circle's diameter and it's circumference. It is also the constant relating the square of a circle's radius with the surface area of the circle. It has a great many applications in mathematics, geometry, the sciences, and engineering.
The constant pi is a non-terminating decimal number, although UltraCalc approximates it to 15 significant digits of precision (3.14159265358979).
A common use of the PI function in UltraCalc is to convert a measurement in radians which is the form in which trigonometric functions take their arguments, and the more conventional degrees of arc. This conversion can be accomplished by multiplying the radian measurement by PI()/180. The following table describes some benchmarks for comparison between radians and degrees.
| Radians | Degrees | Turns of a wheel (common example) |
|---|---|---|
| 0 | 0 | no turns |
| PI/4 | 45 | one-eighth turn |
| PI/2 | 90 | one-quarter turn |
| PI | 180 | one-half turn |
| 2x PI | 360 | one complete turn |
| 3x PI | 540 | one and one-half turn |
SQRT(value)
Value is the numeric value or reference to a numeric value which you are calculating the square root of. Only real roots are supported, therefore if value is negative (which would produce an imaginary root) the SQRT() function will return an error value (#NUM!).
The square root is the number whose product, when the number is multiplied against itself (squared), is value. Note that it is possible to multiply two negative square roots to produce the same positive value. By convention, the SQRT() function only returns the positive root.
COS(value)
Value is the angle measured in radians for which you want to take the cosine. If your argument must be in degrees, multiply it by PI()/180 to convert it into radians.
The cosine is an sinusoidal function with a period of 2*PI()
radians. It's value is always between 1 and -1. It behaves like the sine function,
The cosine function value derives from the geometric ratio between the length of the adjacent (non-hypotenuse) leg to the hypotenuse of a right triangle, when the hypotenuse has a length of one. It is continuous because at intervals of PI() radians the length of the adjacent leg and the hypotenuse are equal.
Another way of looking at this function is to imagine the hypotenuse is the radius, r, of a unit circle centered on a Cartesian plane with x- and y- axes. At any point on the edge of the unit circle, the hypotenuse makes an angle, theta, with the x-axis. The cosine function value of the angle theta is the distance from the center of the circle to the point in the direction of the x-axis. Applied in this fashion, the COS() function can be used to convert between Cartesian and Polar coordinate systems.
Both interpretations are equivalent because if you drop a line from a point on the unit circle that intersects the x-axis at a right angle you form a right triangle.
These trigonometric concepts appear frequently in many engineering, architectural and scientific applications.
ACOS(value)
Value is the real number result of the cosine function taken of an angle you want to find. The legal values of the cosine function are from -1 to 1. An inverse cosine by default will return the normal angle from 0 up to PI. This is because there are several angles which may have an identical value of their cosine. For example, the angles -PI/2, PI/2, 3PI/2, etc., all have a cosine of zero. You can find alternate angles by adding (or subtracting) any multiple of PI radians to the normal angle returned by the inverse cosine function.
You can convert the result of the inverse cosine function from radians into degrees by multiplying it by 180/PI().
ACOSH(value)
Value is the hyperbolic cosine of some angle (measured in radians) that you want
to find. As you might expect, the values of the hyperbolic cosine function (see the
SIN(value)
Value is the angle measured in radians for which you want to take the cosine. If your argument must be in degrees, multiply it by PI()/180 to convert it into radians.
The sine is an sinusoidal function with a period of 2*PI() radians. It's value is always between 1 and -1.
The sine function value derives from the geometric ratio between the length of a right triangle's hypotenuse and the length of the opposite leg, when the hypotenuse has a length of one. It is a continuous function because at intervals of PI() radians the length of the opposite leg and the hypotenuse are equal.
Another way of looking at this function is to imagine the hypotenuse is the radius, r, of a unit circle centered on a Cartesian plane with x- and y- axes. At any point on the edge of the unit circle, the hypotenuse makes an angle, theta, with the x-axis. The sine function value of the angle theta is the distance from the center of the circle to the point in the direction of the y-axis. Applied in this fashion, the SIN() function can be used to convert between Cartesian and Polar coordinate systems.
Both interpretations are equivalent because if you drop a line from a point on the unit circle that intersects the y-axis at a right angle you form a right triangle.
These trigonometric concepts appear frequently in many engineering, architectural and scientific applications.
SINH(value)
Value is an angle measured in radians for which you want to calculate the hyperbolic sine. If your angle is measured in degrees, multiply it by PI()/180 to convert into radians.
Many applications in mathematics and physics, for example determining the gravitational potential of a cylinder, make use of the hyperbolic sine function's characteristics.
ASIN(value)
Value is the sine value of the angle you want. Legal sine values are confined to real numbers from -1 to 1, inclusive.
The angle returned will be between -PI()/2 and PI()/2 radians. To convert this angle into degrees, multiply by PI()/180.
TAN(value)
Value is the angle measured in radians for which you want to take the tangent. If your argument must be in degrees, multiply it by PI()/180 to convert it into radians.
The tangent can have a value from -INF to +INF, however it is undefined at intervals of every PI()/2 radians +/- PI() radians.
The tangent function value derives from a well-known geometric ratio between the length of the opposite and the adjacent (non-hypotenuse) leg of a right triangle. All 3 angles inside of any triangle must add up to exactly PI() radians, and in a right triangle the angle opposite the hypotenuse must be PI()/2 radians. Given these facts, it is not possible for either of the other two angles within the triangle to reach PI()/2 radians themselves. If you choose an angle (other than the triangle's right angle) which approaches PI()/2 radians then the remaining angle must approach 0 radians. The tangent function value tells you in these circumstances how the leg of the right triangle opposite your angle approaches infinite length. These calculations have important applications in architecture and engineering.
TANH(value)
Value is an angle measured in radians for which you want to calculate the hyperbolic tangent. If your angle is measured in degrees, multiply it by PI()/180 to convert into radians. The hyperbolic tangent has a range from -1 to 1.
ATAN(value)
Value is a number containing a tangent function value that you want to retrieve the angle of. This function returns an angle of between PI()/2 and -PI()/2. Although the tangent function is undefined for values of PI()/2 and -PI()/2, the return value of this function is rounded to these values if Value is +INF or -INF, respectively.
This function is sometimes referred to as the inverse tangent function or the arctangent.
The angle returned is the principal value, as there exist an uncountable number of alternative angles satisfying the requirement of having Value as their tangent function value, at regular intervals of +/- PI() to either side of this principal value.
If you require a result in degrees, multiply the arctangent by 180/PI().
ATAN2(x_ordinate, y_abscissa)
X_ordinate is a number representing the distance along the x-axis of a Cartesian point. It may also be thought of as the adjacent leg of a right triangle, where the right angle is made by dropping a perpendicular line from (x_ordinate, y_abscissa) to the point (x_ordinate, 0) on the x-axis.
Y_abscissa is a number representing the distance along the y-axis of a Cartesian point. It may also be thought of as the opposite leg of the right triangle constructed above.
This variation on the arctangent (or inverse tangent function) calculates for you the angle, theta, made with the x-axis when you extend a line segment from the origin at (0, 0) to your specified coordinates at (x_ordinate, y_abscissa). This line segment can also be seen to be the hypotenuse of a right triangle, or the radius of the circle on which the point, (x_ordinate, y_abscissa), sits on the edge. This function is another way of looking at the trigonometric tangent function value that is useful in many UltraCalc applications because it affords you a more convenient parameterization for some tasks, such as converting from Cartesian to Polar coordinate systems.
The return value of this function is within the range of PI()/2 and -PI()/2 measured in radians. If you need to convert this value into degrees then multiply the result by 180/PI().
FLOOR(value)
Value is a real numeric value to be rounded down
to the next lesser whole number (also called an integer). FLOOR()
behaves differently from the
CEILING(number)
Number is the numeric value you want to round.RAND()
The RAND() function will generate another pseudorandom number each time it is evaluated. It returns a fractional number on a unit basis, therefore you can use RAND() to produce numbers between 0 and C by multiplying the RAND() result by C. It follows that to produce a pseudorandom number between A and B you could translate the result by A like this:
RAND() * ( [B] - [A] ) + [A]
The number generation of the RAND() function derives from the system clock, and therefore may not be entirely random. It should not be used for applications requiring cryptographically-strong randomness or uniform probability distributions.
LN(value)
Value is a real number to calculate the natural logarithm of. Value must be positive as the logarithm is undefined for negative values.
A natural logarithm is a special case of a logarithm
having the base of Euler's Number, e (2.71828...). It is the inverse
of the
Logarithms have many applications in mathematics, life and social sciences.
LOG10(value)
Value is a real number to calculate the decimal logarithm of. Value must be positive as the logarithm is undefined for negative values.
To specify your own base for a logarithm use the
LOG(value, base)
Value is a real number that you want to calculate the logarithm to base for. This number must be positive, as the logarithm is undefined for negative numbers.
Base is the base of the logarithm, which defaults to 10.
To calculate the natural logarithm (a logarithm to the base
of Euler's Number, e) it is usually more convenient to call the
NPV(discountRate, value1, value2, ..., valueN)
DiscountRate is the investment's expected rate of return over the life of the investment, expressed as a percentage growth (or decline) per payment period. In some applications this may be the fixed interest rate. This numeric value is used to discount cash flows paid into or received from the investment.
Value1, value2, ... valueN are any number of numeric values representing cash inflows (as positive numbers) or cash outflows (as negative numbers). These cash flows must occur at a fixed period (the same period at which the discountRate is expressed), although some cash flows may be zero. The order of the sequence is important, as value1 is assumed to occur (N-1) periods before valueN and will have been able to accrue that much more interest at the assumed discountRate.
By convention, the NPV() assumes cash flows occur at the end of each period. Consequently,
the NPV() represents the present value as of the date one period's length before the first cash flow,
value1, has been made. If you require flexibility in when cash flows occur (the beginning or
end of each period), consider using the
Only numeric values or text values convertible to numeric values may be passed to this function. If a column or range reference is passed as a value argument, only numeric values or text values convertible to numeric values are used.
FV(interestRate, nPeriod, payment, presentValue, paymentDue)
InterestRate is the assumed interest rate per period. The future value calculation assumes no change in the interest rate over the course of the investment. If you anticipate interest rate fluctuations, you should calculate the future value incrementally over shorter periods in which the interest rate is held constant. In some calculations, the interestRate may be synonymous with an investments' expected growth or rate of return per period.
NPeriod is the total number of payment periods in an annuity. Each payment is assumed to be of the same amount, and occur at regular fixed time intervals. A payment earlier in the annuity will be invested for a longer period of time and therefore would accrue more interest than a payment made later in the annuity.
Payment is a fixed amount invested in the annuity at each period. Use a negative number to represent an outflow of cash paid out, and a positive number to represent an inflow of cash received. Calculating a future value requires either a non-zero series of payments or a presentValue.
PresentValue is the value of the investment at the beginning of the annuity. It represents the discounted value of a series of future payments, which over time could be worth a greater amount because they have accrued interest. If the annuity has no present value, then you must specify a non-zero payment amount.
PaymentDue is a numeric value of either 1 or 0, and indicates whether payments are invested in the annuity at the beginning of each period (1) or at the end of each period (0).
The interestRate and nPeriod arguments determine the frequency of payments. If interestRate is given as an annual rate, and nPeriod is 1 then payments are once per year. On the other hand, if nPeriod had been 4 then payments would occur quarterly. Please ensure you use consistent time values when specifying these arguments.
PV(interestRate, nPeriods, amount, futureValue, paymentDue)
InterestRate is the per-period rate of interest used to discount the future payments. For positive interest rates, the value of future payments diminishes (discounts) to what they are worth now. It is assumed you can reinvest the present value at interestRate to receive futureValue after nPeriods.
NPeriods are the total number of payment periods over the course of the annuity. If your retirement plan annuitizes in 35-years, and you make a fixed quarterly contribution into it, then you would use 35x4 or 140 as your total number of payment periods.
Amount is how much is paid (or received) each period. This amount must be constant
over the course of the investment. If you need to calculate the Net Present Value of a series of variable
payment amounts, then you should consider using the
FutureValue is the expected cash balance of the investment at culmination. If this argument is omitted, it will be assumed to be zero. In the common usage scenario of calculating loan repayments, a future value of zero represents having a zero liability when the loan is fully repaid. When specifying a zero future value, ensure that amount is non-zero (otherwise the loan could never be repaid). In retirement planning, you would normally estimate the future value you would like to have when you retire.
PaymentDue is a numeric value of either 1 or 0, and indicates whether payments are invested in the annuity at the beginning of each period (1) or at the end of each period (0).
PMT(interestRate, nPeriods, presentValue, futureValue, paymentDue)
InterestRate is the interest rate for the loan.
NPeriods is the number of payments required to pay back the loan.
PresentValue is the current value of the loan (also called the principal), which is a lump sum that the future series of nPeriods payments (which accumulate interest at interestRate) is worth today.
FutureValue is the cash balance in the future (for a loan, this will typically be a loan liability balance of zero) following this series of fixed payments, accruing a fixed interestRate. If omitted, a default future value of 0 is used.
PaymentDue is a numeric value of either 1 or 0, and indicates whether payments are invested in the annuity at the beginning of each period (1) or at the end of each period (0).
NPER(interestRate, amount, presentValue, futureValue, paymentDue)
InterestRate is the rate of interest per payment period. This numeric value must be held fixed for the duration of the investment. If you must calculate financing based on changes in interest rate then you will need to break up the calculation into several stages over which the interest rate is held constant.
Amount is the payment amount due each period. This numeric value must be constant over the duration of the investment.
PresentValue is a discounted value or lump sum payment that if taken today and invested at the interestRate would be worth the same as this series of fixed payments in the future.
FutureValue is the value after the last payment has been made. If this numeric value is omitted it is assumed to be zero (since this function is normally used in calculating loan repayment you will reach zero liability when the loan is finally paid off.)
PaymentDue indicates whether payments come due at the beginning of each payment period (1) or at the end of each payment period (0). If left unspecified, the default is to assume paymentDue occurs at the end of each payment period.
EVEN(Number)
Number is the value to round.ODD(Number)
Number is the value to round.PPMT(interestRate, periodNumber, nPeriods, presentValue, futureValue, paymentDue)
InterestRate is a fixed rate of interest per period. This function assumes there is one payment made on each period, therefore in cases where you want to calculate quarterly or monthly payments you should adjust an annual interestRate accordingly by dividing it by the number of payments per year.
PeriodNumber identifies the period of the current payment, where the first payment has the number 1. The periodNumber must not exceed the total number of periods (nPeriods).
NPeriods is the total number of payments over the course of this investment or loan.
PresentValue is the discounted value of this series of future payments, if you could take a lump sum payment today and invest it at the fixed interestRate until the future date when this investment or loan had been repaid.
FutureValue is the expected value of this series of payments after the last payment has been made, where all previous payments have been accumulating interest at the fixed interestRate. When omitted, such as when this function is used for calculating loan payments that reduce an outstanding liability, the future value is assumed to be zero.
PaymentDue is a numeric value indicating that payments are due at the beginning of each period (1) or at the end of each period (0).
The PPMT() function calculates the portion of a fixed payment attributed to principal. If you
need to calculate the portion of a fixed payment repaying interest then use the
IPMT(interestRate, periodNumber, nPeriods, presentValue, futureValue, paymentDue)
InterestRate is a fixed rate of interest per period. This function assumes there is one payment made on each period, therefore in cases where you want to calculate quarterly or monthly payments you should adjust an annual interestRate accordingly by dividing it by the number of payments per year.
PeriodNumber identifies the period of the current payment, where the first payment has the number 1. The periodNumber must not exceed the total number of periods (nPeriods).
NPeriods is the total number of payments over the course of this investment or loan.
PresentValue is the discounted value of this series of future payments, if you could take a lump sum payment today and invest it at the fixed interestRate until the future date when this investment or loan had been repaid.
FutureValue is the expected value of this series of payments after the last payment has been made, where all previous payments have been accumulating interest at the fixed interestRate. When omitted, such as when this function is used for calculating loan payments that reduce an outstanding liability, the future value is assumed to be zero.
PaymentDue is a numeric value indicating that payments are due at the beginning of each period (1) or at the end of each period (0).
The IPMT() function calculates the portion of a fixed payment attributed to interest. If you
need to calculate the portion of a fixed payment repaying loan principal then use the
LOWER(text_value)
Text_value is a piece of text you want converted into lowercase. The invariant culture is used to translate characters, therefore this function may not be suitable for use with localizable text values.
UPPER(text_value)
Text_value is the text you want to convert to uppercase. UPPER does not change characters in text that are not letters.
LEFT(text_value, num_chars)
Text_value is a piece of text or reference to some text starting with a substring you want to retrieve.
Num_chars indicate the number of characters retrieved from the beginning of text_value. An error value is returned if this argument is less than zero. If this argument exceeds the length of text_value, then all of text_value is retrieved. If omitted, the first character of text_value is retrieved.
RIGHT(text_value, num_chars)
Text_value is a piece of text or reference to some text ending with a substring you want to retrieve.
Num_chars indicate the number of characters retrieved from the end of text_value. An error value is returned if this argument is less than zero. If this argument exceeds the length of text_value, then all of text_value is retrieved. If omitted, the last character of text_value is retrieved.
MID(text_value, starting_point, character_count)
Text_value is a piece of text containing the substring you want to retrieve, when you know the position and length of your desired substring.
Character_count specifies how long of a substring to retrieve from text_value measured as a number of characters. If the requested length, when added to the specified starting_point, exceeds the length of text_value then the remainder of the string starting at starting_point is returned.
Starting_point is the one-based position within text_value of the first character in the substring you want to retrieve. If this argument exceeds the length of text_value then the function will return an empty string.
If either character_count or starting_point has a negative value, or evaluate to an error value, then the function returns an error value.
TRIM(text_value)
Text_value is a piece of text to trim and normalize the white space of. Trimming removes all leading and trailing white space. Normalization reduces runs of consecutive whitespace appearing within the text_value to single blank spaces.
LEN(text_value)
Text_value is any text string or reference to a text value for which you want a character count. The number of characters, including all whitespace, determines the length of the text string.
Depending on the character encoding used, some whitespace characters such as line-breaks may count as two characters (one character is a carriage return, the other character is a line feed).
An empty text string contains no characters.
VALUE(text_value)
Text_value is any text value or single-value reference to a text string that you want to convert into a number. It may have been formatted with a sign, currency symbol, or thousands separator. These characters will be stripped to yield the numeric value of the text.
If the text_value is an error value or could not be converted into a numeric value then the function returns an error value.
Returns an error if the UltraCalcValue argument at the top of the number stack was an error.
Returns a value conversion into a double-precision numeric type if the incoming text can be interpreted as a numeric value (possibly after filtering off thousands separators, decimal separators, currency symbols, exponents and signs.)
Returns a numeric conversion from another numeric type if the incoming argument was not text (sometimes when the result of such a conversion is poorly defined this may defy an application's expectations, for example, a DATEVALUE may convert into a numeric value of ticks.)
FIND(text_to_find, text_to_search, starting_point)
Text_to_find is the piece of text you want to find. It can be a reference (for example, a NamedReference to a constant text string or a CalcSettings reference to a TextBox on the form). It should be shorter in length than the text_to_search.
Text_to_search is the piece of text you want to search for text_to_find within. It's commonly a reference to a text string that you want to search.
Starting_point is the one-based character position inside of text_to_search at which UltraCalc will begin searching. This argument is optional and if omitted, the search will begin at the first character.
If text_to_find is not found this function returns a Value error, otherwise it returns the starting position of text_to_find within text_to_search.
REPLACE(text_value, starting_point, character_count, new_text_value)
Text_value is the original text within which you want to replace some substring of text, and you already know the starting_point and character_count of that substring.
Starting_point is the one-based position within text_value where the replaced substring begins.
Character_count is the length of the substring being replaced as a count of the characters it contains. If this value when added to starting_point would exceed the length remaining in text_value then the entire remainder of text_value is replaced.
New_text_value is some new text that replaces the text of the specified substring. It is not required to be the same length as the replaced substring.
When starting_point or character_count are error values, or less than zero, an error value is returned. If starting_point exceeds the length of text_value then an error value is returned.
It is possible to use the REPLACE() function with other UltraCalc functions to express the replacement of one substring with another. The following UltraCalc expression replaces the word "Old" with the word "New" in the original text value.
REPLACE("Hello Old World", FIND("Old"), LEN("Old"), "New")
SYD(assetCost, salvageValue, lifespan, periodNumber)
AssetCost is the initial value of the asset when it was purchased new. This numeric value needs to be greater than the salvageValue (otherwise the asset would be appreciating in value).
SalvageValue is the market price you can get for an asset at the end of it's useful life (lifespan periods). In some situations, this may represent the value of the asset's spare parts.
Lifespan is the useful life of the asset being depreciated measured in fixed-length time periods (usually years). The appropriate lifespan to use may vary with the kind of asset being depreciated. As the name of this function suggests, the lifespan when using this depreciation method is normally measured in years (although this does not necessarily have to be the case).
PeriodNumber is the one-based number of the period to calculate the depreciation of the asset for, having a value of between 1 and lifespan. It must be measured in the same units of time as the lifespan.
SLN(assetCost, salvageValue, lifespan)
AssetCost is the initial value of the asset when it was purchased new. This numeric value needs to be greater than the salvageValue (otherwise the asset would be appreciating in value).
SalvageValue is the market price you can get for an asset at the end of it's useful life (lifespan periods). In some situations, this may represent the value of the asset's spare parts.
Lifespan is the useful life of the asset being depreciated measured in fixed-length time periods (usually years). The appropriate lifespan to use may vary with the kind of asset being depreciated.
Straight-line depreciation expresses an asset's depreciation at a constant rate per period. The asset is assumed to lose useful value no faster in the first period depreciation is calculated than in the last period. An accountant can advise you as to which assets the straight-line depreciation calculation method is suitable.
DB(assetCost, salvageValue, lifespan, period, months)
AssetCost is the original cost or purchase price of the asset at the start of the calculation.
SalvageValue is the market value of the asset after it's expected useful life ends, sometimes this will be the value of the asset as spare parts.
Lifespan indicates for how many periods the asset is useful (it's useful life), and must be depreciated. Accounting standards vary on what lifespan is appropriate for different classes of assets, such as durable and non-durable goods.
Period indicates the number of units of time between decremental calculations of the depreciation. If lifespan is measured in years, then the value specified for the period must also be in years.
Months allows you to specify the number of months in the first year, if the depreciation does not begin on the first day of the year. You might specify months based on when the asset was purchased new. If omitted, the calculation defaults to 12 which is equivalent to calculating starting from the first day of the year.
For some assets, alternative calculation methods such as the
DDB(assetCost, salvageValue, lifespan, period, weight)
AssetCost is the original cost or purchase price of the asset at the start of the calculation.
SalvageValue is the market value of the asset after it's expected useful life ends, sometimes this will be the value of the asset as spare parts.
Lifespan indicates for how many periods the asset is useful (it's useful life), and must be depreciated. Accounting standards vary on what lifespan is appropriate for different classes of assets, such as durable and non-durable goods.
Period indicates the number of units of time between decremental calculations of the depreciation. If lifespan is measured in years, then the value specified for the period must also be in years.
Weight allows you to fine tune the calculation method. By default, the double declining balance method uses a factor of 2.
For some assets, alternative calculation methods such as the
INTRATE(settlementDate, maturityDate, amount, redemptionValue, basis)
SettlementDate is the date on which a security purchase is settled with the buyer taking possession of the security. Market conventions for settlement of trades vary by security and exchange. The settlement date may be substantially later than a security's issue date when it is traded on the secondary market.
MaturityDate is the date when the security can be redeemed. It ceases to accrue any further value after this date. The maturity date must be later than the settlementDate or an error value is returned.
Amount is the purchase price of the security. For positive interest, this amount will be smaller than the redemptionValue because it discounts interest that will be accrued over the time period the security is held.
RedemptionValue is the price a security holder may redeem their security for at the maturityDate. In some cases, this may be called the face value of the security.
Basis describes what accounting convention to use when counting days per calendar year, and days on which interest can accrue. If omitted, a basis consistent with United States National Association of Security Dealers (NASD) of 30/360 will be employed.
| Basis | Day counting method |
|---|---|
| 0 | 30/360 (US NASD) |
| 1 | Actual/actual |
| 2 | Actual/360 |
| 3 | Actual/365 |
| 4 | 30/360 (European) |
Date values should be passed to this function using either the
DATEVALUE(date_text)
Date_text is text that represents a date in a .NET DateTime formatDATE(year,month,day)
Year is the number representing the year Month is a number representing the month of the year Day is a number representing the day of the monthDAYS360(start_date,end_date,method)
Start_date and end_date are the two dates between which you want to know the number of days. If start_date occurs after end_date, DAYS360 returns a negative number. Dates should be entered by using the DATE function, or as results of other formulas or functions. For example, use DATE(2008,5,23) for the 23rd day of May, 2008. Problems can occur if dates are entered as text. Method is a logical value that specifies whether to use the U.S. or European method in the calculation:TIMEVALUE(time_text)
Time_text is text that represents a date in the .NET DateTime formatTIME(hour,minute,second)
Hour is a number representing the time's hour Minute is a number representing the time's minute Second is a number representing the time's secondMEDIAN(Value1, value2, ..., valueN)
Value1, value2, ..., valueN are any number of numeric values or references to numeric values for which you want the median value found. If any argument is an error value, or there are no numeric values within the series of arguments, then MEDIAN() will return an error value.
The median is the middle value of the sorted list of numeric values (you do not need to sort Value1, value2, ..., valueN prior to passing them to the MEDIAN() function). When the list contains an odd number of values, the median will be the value at position CEIL(N/2). For example, the median of the 5-value list 0, 20, 30, 50, 80, is the value in the third position: 30. When the list contains an even number of values, the median will be the average of the two values in the middle. For example, the median of the 4-value list 7, 20, 30, 45, is the average of the two middle elements (20 and 30): 25. Note that the value of the MEDIAN() varies most from the arithmetic mean of the sorted list when the distribution of values tends to favor one side or the other of that arithemtic mean. For example, the arithmetic mean of the 5-value list 1, 2, 3, 21, 43 is 14 but it's median value is 3.
VAR(Value1, value2, ..., valueN)
Value1, value2, ..., valueN are any number of numeric values or references to numeric values you provide to specify a sampling of your larger data population. If any argument contains an error value or there arte no numeric values in the sampling, the VAR() function evaluates to the first error value it encounters.
Variance is a measure of statistical variability, and is used in statistical studies based on small samplings from much larger data populations to draw inferences about the variability of those data populations.
STDEV(Value1, value2, ..., valueN)
Value1, value2, ..., valueN are any number of numeric values or references to numeric values that you've given to provide a sample space of your data set. If any value contains an error, then the function evaluates to the first error encountered. An error value is returned if the sample space contains no numeric values.
The standard deviation is used in statistical studies to make inferences about a larger population of data based on sampling only a subset. For well chosen samplings, a small standard deviation indicates most data points tend to cluster within a narrow range of values. A larger standard deviations indicates greater variability in the data points, and that there is a higher likelihood for values to occur farther away and/or more frequently away from the expected norm.
TYPE( value)
Value is an UltraCalcValue object or the result of evaluating an UltraCalc expression.
| UltraCalc data type: | TYPE function returns: |
|---|---|
| Number | 1 |
| Text | 2 |
| Boolean | 4 |
| Error | 16 |
ERRORTYPE(error_value)
Error_value is an UltraCalc error value resulting from the unsuccessful evaluation of an expression.
The ERRORTYPE function returns an error value of #N/A (Not Applicable) if you pass it an UltraCalc value that was not an error value.
| Error_value | ERRORTYPE returns |
|---|---|
| #NULL! | 1 |
| #DIV/0! | 2 |
| #VALUE! | 3 |
| #REF! | 4 |
| #NAME? | 5 |
| #NUM! | 6 |
| #N/A! | 7 |
NA()
The NA function always returns the same constant error value.
You might use this function when you wanted an IF function or other complex UltraCalc expression to return the #N/A! error value.
ISBLANK(value)
Value can be any constant, reference or the result of evaluating an UltraCalc expression.
The definition of what constitutes "blank" is anything that causes the IsNull method of the UltraCalcValue object containing the argument, value, to return TRUE. This may vary for different kinds of UltraCalcValue object.
ISERR(value)
Value is an UltraCalcValue object (perhaps the result of evaluating an UltraCalc expression) thought to be an error value. The ISERR function will return FALSE when value is not an error value, or it is an error but the error value was not applicable.
This is a weaker variation of the more stringent
ISERROR(value)
Value is an UltraCalcValue object (perhaps the result of evaluating an UltraCalc expression) thought to be an error value. The ISERROR function will return FALSE only when value is not an error value.
A more relaxed variation of this function is the
ISLOGICAL(value)
Value is an UltraCalcValue object, or the result of evaluating an UltraCalc expression, which is thought to be a boolean value (TRUE or FALSE.) Boolean values are named in honor of George Boole, whose development of Boolean algebra governs the special characteristics of logical functions upon these two values.
Depending on the kind of value, it may not be convertible into a boolean value and therefore the ISLOGICAL function returns FALSE. The ISLOGICAL function only furnishes information about the compatibility of a value with the boolean-typed values evaluated by UltraCalc.
The ISLOGICAL function does not perform deductive reasoning. A return value of TRUE should not be interpreted as proof any value or UltraCalc expression passed to the ISLOGICAL function represents a logical outcome.
ISNA(value)
Value is an error value thought to be the error value returned when an error has happened, but the error code was not applicable.
ISNONTEXT( value)
Value is an UltraCalcValue object or the result of an UltraCalc expression evaluation that you want to test to determine whether it is a text value (such as a .NET String object) or a non-text value.
ISNUMBER( value)
Value is an UltraCalcValue or the result of evaluating an UltraCalc expression that you want to test to determine whether it is a number or not. A numeric value can be an integer, floating-point or decimal number.
ISREF( reference)
Reference is an UltraCalcValue object that contains a reference to some application-specific control, field, or piece of information. You can think of it as an address which the UltraCalc engine uses to look-up a value in your application when one is needed to evaluate an expression.
The ISREF function returns TRUE when the specified UltraCalcValue is a reference. Since it's value is defined by the contents at another referenced location, it's possible for this UltraCalcValue object to change in value based on changes in your application (outside of the UltraCalc engine.) Proper implementation of the IUltraCalcReference interface and NotifyValueChange methods will ensure the UltraCalc engine is made aware of any changes in a referenced value, and that all references depending on this value are refreshed.
Conversely, the ISREF function will return FALSE should the UltraCalcValue you supply represent a constant value or the temporary result of evaluating an UltraCalc expression (a constant value sitting at the top of the UltraCalc engine's number stack.)
ISTEXT(value)
Value is an UltraCalcValue object or the result of evaluating an UltraCalc expression that you want to test to determine whether it is of a text (e.g., string) value or a non-text value (which could be a numeric, boolean, or error value.)
ISEVEN(value)
Value is a number thought to be even (divisible by the
integer 2.) A value that is not an integer will first be converted to
an integer using the
ISODD(value)
Value is a number thought to be odd (not divisible by
the integer 2.) A value that is not an integer will first be converted
to an integer using the
IRR(value_reference, estimate)
Value_reference must be a column or range reference of numeric values representing cash outflows (payments) as negative numeric values, and cash inflows (income) as positive numeric values. Each cash flow must occur with a regular period. If payments occur at irregular intervals, then you must represent the cash flow periods as taking place on a period common to all cash flows, and at intervals without a cash flow specify a zero value. For example, if you finance the purchase of a television by taking a $300 loan with monthly payments of $110, but your payments do not start for three months, your series of cash flows would be monthly but would show three zero values for the months without payments (+300, 0, 0, 0, -110, -110, -110).
Estimate is an approximation close to what you expect the resulting internal rate of return to be. This function employs an iterative algorithm starting with this estimate and then repeatedly converging on a result that has a diminishing margin of error. If you do not provide an estimate then this function uses 10 percent as it's starting point.
If after twenty iterations the margin of error has not closed to within 1/1000 basis point then a #NUM error value will be returned.
The IRR() function has applications where you may be given a series of cash flows without an interest rate, such as in the retail financing example above, and wish to calculate what it's effective rate of interest would be. The internal rate is based on the period between cash flows, therefore when calculating payments that are not annual, you must annualize the internal rate.
RATE(nPeriods, amount, presentValue, paymentDue, futureValue, estimate)
NPeriods are the total number of cash flows, whether a payment (negative amount) or a receipt (positive amount) occuring periodically with a fixed time period between each cash flow.
Amount is the amount of cash paid (negative) or received (positive). It must be held constant over the course of the annuity.
PresentValue is the value today of the series of future payments. Payments made in the future are discounted by the interest rate being calculated, because it is assumed that at that interest rate a smaller sum could be invested today and would grow to the amount at a future time when that payment became due.
PaymentDue indicates whether cash flows occur at the beginning of each period (1) or at the end of each period (0). If not specified, the payments at the end of each period is assumed.
FutureValue is the accumulated balance attained after nPeriods payments have been made and accrued interest at the calculated rate. If left unspecified, the default future value is assumed to be zero (this represents reaching zero loan liability, when a loan has been fully repaid).
Estimate is an approximation of the interest rate used to start the calculation (which works by iteratively refining the estimate until it converges on the correct value). When no estimate is given a default of 10% is assumed.
CODE(Text)
Text is a text string of at least one character in length. This function returns the numeric code of the first character in Text. These code values correspond to those used by your machine to encode the text characters in a string (e.g., Unicode).
If Text is an empty string of zero length, then this function returns the code zero.
FIXED(value, decimal_places, exclude_thousands_separators)
Value is the numeric value to be rounded and formatted as text.
Decimal_places indicate how many places to the right of the decimal point the value should be rounded. If omitted, rounding occurs to two decimal places.
Exclude_thousands_separators is a boolean value (TRUE or FALSE) indicating whether commas should appear in the formatted text value. By default the formatted text includes commas as thousands separators.
This function may not return text values consistent with your locale's formatting of numbers because it operates using culture invariant settings (these include commas as thousands separators and decimal points) to facilitate unambiguously parsing the text values it formats into numeric values for subsequent calculations. Applications may instead choose to format numeric values after UltraCalc has finished processing them, but before presenting them to their end user.
No arguments are passed to this function.
The date returned for TODAY() is based on the local time of the host running UltraCalc. In some distributed applications, such as those built for the Web, this may be different from today's date at the client.
The date/time value returned is always adjusted to Midnight (00:00).
ASINH(value)
Value is the hyperbolic sine of some angle (measured in radians) that you want
to find. As you might expect, the values of the hyperbolic sine function (see the
TANH(value)
Value is an angle measured in radians for which you want to calculate the hyperbolic tangent. If your angle is measured in degrees, multiply it by PI()/180 to convert into radians. The hyperbolic tangent has a range from -1 to 1.
ACOSH(value)
Value is the hyperbolic cosine of some angle (measured in radians) that you want
to find. As you might expect, the values of the hyperbolic cosine function (see the
DATE(date, numberOfMonths)
Date is the starting date
NumberOfMonths is a number of months to shift the date. A positive number means a date after the startdate. A negative number indicates a date prior to the start date.
EOMONTH(date, numberOfMonths)
Date is the starting date
NumberOfMonths is a number of months to shift the date. A positive number means a date after the startdate. A negative number indicates a date prior to the start date.
WEEKDAY(date, returnType)
Date is a date.
ReturnType determines which numbering scheme is used for the days of the week.
1 (default) = Sunday (1) through Saturday (7)
2 = Monday (1) through Sunday (7)
3 = Monday (0) through Sunday (6)
NETWORKDAYS(startDate, endDate [, holiday1, holiday2, ..., holidayN])
StartDate is the date from which to start.
EndDate is the date at which to end.
Holiday1, holiday2, ..., holidayN is any number of dates or range references containing dates that are to be considered non-working days.
WEEKNUM(date, returnType)
Date is a date.
ReturnType determines which day begins the week.
1 (default) = Sunday is the first day of the week.
2 = Monday is the first day of the week.
WORKDAY(startDate, days [, holiday1, holiday2, ..., holidayN])
StartDate is the date from which to start.
Days is the number of work days to offset from the start date.
Holiday1, holiday2, ..., holidayN is any number of dates or range references containing dates that are to be considered non-working days.
Dec2X(number, places)
Number is the decimal value to be converted.
Places is the number of characters to use in representing the value. If places is not specified, the mimumum number of characters neccessary to represent the value will be used. Places allows you to specify leading zeros.
Dec2Bin(number, places)
Number is the decimal value to be converted.
Places is the number of characters to use in representing the value. If places is not specified, the mimumum number of characters neccessary to represent the value will be used. Places allows you to specify leading zeros.
Dec2Hex(number, places)
Number is the decimal value to be converted.
Places is the number of characters to use in representing the value. If places is not specified, the mimumum number of characters neccessary to represent the value will be used. Places allows you to specify leading zeros.
Dec2Oct(number, places)
Number is the decimal value to be converted.
Places is the number of characters to use in representing the value. If places is not specified, the mimumum number of characters neccessary to represent the value will be used. Places allows you to specify leading zeros.
X2Dec(number)
Number is a string represeting a number in a non-decimal number system.
Bin2Dec(number)
Number is a string represeting a binary number.
Hex2Dec(number)
Number is a string represeting a hexadecimal number.
Oct2Dec(number)
Number is a string represeting a octal number.
XBase2XBase(number, places)
Number is the value to be converted.
Places is the number of characters to use in representing the value. If places is not specified, the mimumum number of characters neccessary to represent the value will be used. Places allows you to specify leading zeros.
Bin2Oct(number, places)
Number is the value to be converted.
Places is the number of characters to use in representing the value. If places is not specified, the mimumum number of characters neccessary to represent the value will be used. Places allows you to specify leading zeros.
Bin2Hex(number, places)
Number is the value to be converted.
Places is the number of characters to use in representing the value. If places is not specified, the mimumum number of characters neccessary to represent the value will be used. Places allows you to specify leading zeros.
Oct2Bin(number, places)
Number is the value to be converted.
Places is the number of characters to use in representing the value. If places is not specified, the mimumum number of characters neccessary to represent the value will be used. Places allows you to specify leading zeros.
Oct2Hex(number, places)
Number is the value to be converted.
Places is the number of characters to use in representing the value. If places is not specified, the mimumum number of characters neccessary to represent the value will be used. Places allows you to specify leading zeros.
Hex2Bin(number, places)
Number is the value to be converted.
Places is the number of characters to use in representing the value. If places is not specified, the mimumum number of characters neccessary to represent the value will be used. Places allows you to specify leading zeros.
Hex2Oct(number, places)
Number is the value to be converted.
Places is the number of characters to use in representing the value. If places is not specified, the mimumum number of characters neccessary to represent the value will be used. Places allows you to specify leading zeros.
CONVERT(number, fromUnit, toUnit)
Number is the value to convert.
FromUnit is the unit in which the number is given.
ToUnit is the units to convert to.
Weight and mass units:
"g" = gram
"sg" = slug
"lbm" = pound mass (avoirdupois)
"u" = U (atomic mass unit)
"ozm" = Ounce mass (avoirdupois)
Distance units:
"m" = Meter
"mi" = Statute mile
"Nmi" = Nautical mile
"in" = Inch
"ft" = Foot
"yd" = Yard
"ang" = Angstrom
"Pica" = Pica (1/72 in.)
Time units:
"yr" = Year
"day" = Day
"hr" = Hour
"mn" = Minute
"sec" = Second
Pressure units
"Pa" (or "p") = Pascal
"atm" (or "at") = Atmosphere
"mmHg" = mm of Mercury
Force units
"N" = Newton
"dyn" (or "dy") = Dyne
"lbf" = Pound force
Energy units:
"J" = Joule
"e" = Erg
"c" = Thermodynamic calorie
"cal" = IT calorie
"eV" (or "ev") = Electron volt
"HPh" (or "hh") = Horsepower-hour
"Wh" (or "wh") = Watt-hour
"flb" = Foot-pound
"BTU" (or "btu") = BTU
Power units:
"HP" (or "h") = Horsepower
"W" (or "w") = Watt
Magentism units:
"T" = Tesla
"ga" = Gauss
Temperature units:
"C" (or "cel") = Degree Celsius
"F" (or "fah") = Degree Fahrenheit
"K" (or "kel") = Kelvin
Liquid measure units:
"tsp" = Teaspoon
"tbs" = Tablespoon
"oz" = Fluid ounce
"cup" = Cup
"pt" (or "us_pt") = U.S. pint
"uk_pt" = U.K. pint
"qt" = Quart
"gal" = Gallon
"l" (or "lt") = Liter
Any metric ToUnit or FromUnit may be prefixed with one of the following:
exa ("E") = 1E+18
peta ("P") = 1E+15
tera ("T") = 1E+12
giga ("G") = 1E+09
mega ("M") = 1E+06
kilo ("k") = 1E+03
hecto ("h") = 1E+02
dekao ("e") = 1E+01
deci ("d") = 1E-01
centi ("c") = 1E-02
milli ("m") = 1E-03
micro ("u") = 1E-06
nano ("n") = 1E-09
pico ("p") = 1E-12
femto ("f") = 1E-15
atto ("a") = 1E-18
DELTA(number1, [number2])
Number1 is a number.
Number2 is a number. If Number2 is not specified, Number1 will be compared to 0.
GESTEP(number, [step])
Number is a number.
Step is a number. If step is not specified, Number will be compared to 0.
COMPLEX(realNumber, imaginaryNumber, [suffix])
RealNumber is the real coefficient of the complex number.
ImaginaryNumber is the imaginary coefficient of the number.
Suffix specifies the suffix to use. The acceptable values are "i" or "j". If omitted, "i" is used. Note that the suffix is case-sensitive; upper case "I" and "J" are not allowed and will result in a #VALUE error.
IMABS(complexNumber)
ComplexNumber is a complex number in the format: "x + yi" or "x + yj".
IMAGINARY(complexNumber)
ComplexNumber is a complex number in the format: "x + yi" or "x + yj".
IMARGUMENT(complexNumber)
ComplexNumber is a complex number in the format: "x + yi" or "x + yj".
IMCONJUGATE(complexNumber)
ComplexNumber is a complex number in the format: "x + yi" or "x + yj".
IMCOS(complexNumber)
ComplexNumber is a complex number in the format: "x + yi" or "x + yj".
IMDIV(dividend, divisor)
Dividend is a complex number in the format: "x + yi" or "x + yj".
Divisor is a complex number in the format: "x + yi" or "x + yj".
IMEXP(complexNumber)
ComplexNumber is a complex number in the format: "x + yi" or "x + yj".
IMLN(complexNumber)
ComplexNumber is a complex number in the format: "x + yi" or "x + yj".
IMREAL(complexNumber)
ComplexNumber is a complex number in the format: "x + yi" or "x + yj".
IMSUB(complexNumber1, complexNumber2)
ComplexNumber1 is a complex number in the format: "x + yi" or "x + yj" from which ComplexNumber2 will be subtracted.
ComplexNumber2 is a complex number in the format: "x + yi" or "x + yj" which will be subtracted from ComplexNumber1.
IMPRODUCT(complexNumber1 [, complexNumber2, complexNumber3, ..., complexNumberN])
ComplexNumber1, ComplexNumber2, ..., ComplexNumberN is any number of complex numbers in the format: "x + yi" or "x + yj" which will be multiplied together.
IMSUM(complexNumber1 [, complexNumber2, complexNumber3, ..., complexNumberN])
ComplexNumber1, ComplexNumber2, ..., ComplexNumberN is any number of complex numbers in the format: "x + yi" or "x + yj" which will be added together.
IMLOG10(complexNumber)
ComplexNumber is a complex number in the format: "x + yi" or "x + yj".
IMLOG2(complexNumber)
ComplexNumber is a complex number in the format: "x + yi" or "x + yj".
IMSIN(complexNumber)
ComplexNumber is a complex number in the format: "x + yi" or "x + yj".
IMSQRT(complexNumber)
ComplexNumber is a complex number in the format: "x + yi" or "x + yj".
IMPOWER(complexNumber, power)
ComplexNumber is a complex number in the format: "x + yi" or "x + yj".
Power is the power to which ComplexNumber will be raised.
DollarFr(decimalDollarAmount, Fraction)
DecimalDollarAmount is the dollar amount expressed as a decimal.
Fraction is the value used as the denominator of the fraction. If this value is not an integer, it will be truncated.
DollarFr(decimalDollarAmount, Fraction)
DecimalDollarAmount is the dollar amount expressed as a decimal.
Fraction is the value used as the denominator of the fraction. If this value is not an integer, it will be truncated.
INFO(type)
Type is a string indicating the type of information to return.
"directory" = The full path to the current folder.
"osversion" = The currently operating system version as a string.
"system" = The current operating system. This will always return "pcdos" which indicates Microsoft Windows. The corresponding function in Excel can also return "mac" for Macintosh, but since NetAdvantage is only supported in Windows, this function will always return "pcdos".
The following are supported by Microsoft Excel, but have no correlation in UltraCalcManager: "numfile", "origin", "recalc", "release".
The following are supported in older versions of Excel, but not Office2007, and have no correlation in UltraCalcManager: "memavail", "memused", "totmem".
N(value)
Value is the value to be converted to a number. The following are acceptable values:
A number - returns the number.
A date - returns the date.
True - returns 1.
False - returns 0.
An error value - returns the error value.
Any other value - returns 0.
FACT(number)
Number is a positive number for which the factorial will be calculated.
FACTDOUBLE(number)
Number is a positive number for which the double factorial will be calculated.
Combin(number, numberChosen)
Number is the number of items.
NumberChosen is the number of items chosen in each combination.
DEGREES(radians)
Radians is a value in radians which will be converted to degrees.
RADIANS(degrees)
Degrees is a value in degrees which will be converted to radians.
GCD(number1, [number2, number3, ..., numberN])
Number1, Number2, ..., NumberN is any number of integers.
LCM(number1, [number2, number3, ..., numberN])
Number1, Number2, ..., NumberN is any number of integers.
MULTINOMIAL(number1, [number2, number3, ..., numberN])
Number1, Number2, ..., NumberN is any number of numbers.
MRound(number, multiple)
Number is a number to be rounded.
Multiple is a number indicating the multiple to which to round.
RANDBETWEEN(bottom, top)
Bottom is the minumum value that will be returned.
Top is the maximum value that will be returned.
ROMAN(number, form)
Number is the number to convert to roman numerals.
Form is a number or boolean value indicating whether to use classic roman numerals or a more concise version.
0 = (Default) Classic. (499 = "CDXCIX")
1 = More concise. (499 = "LDVLIV")
2 = More concise. (499 = "XDIX")
3 = More concise. (499 = "VDIV")
4 = Simplified. (499 = "ID")
TRUE = Classic.
FALSE = Simplified.
ROUNDDOWN(number, digits)
Number is a number to be rounded down.
Digits indicates the number of decimal places to round to. Positive numbers indicates places after the decimal point, negative numbers indicate places before the decimal point.
ROUNDUP(number, digits)
Number is a number to be rounded up.
Digits indicates the number of decimal places to round to. Positive numbers indicates places after the decimal point, negative numbers indicate places before the decimal point.
SERIESSUM(inputValue, initialPower, step, coefficient1 [, coefficient2, coefficient3, ..., coefficientN])
InputValue is the input value to the power series.
InitialPower is the initial power to which X will be raised.
Step is the step which will be used to increase N for each term in the series.
Coefficient1, Coefficient2, ..., CoefficientN is a set of coefficients by which each successive power of X is multiplied.
SIGN(number)
The number whose sign wil be returned.
SQRTPI(number)
The number which will be multiplied by Pi.
CHOOSE(index_num, value1, [value2, ..., valueN])
Once the assembly is loaded, any type that derives from UltraCalcFunction will be registered with the function factory
The number stack is used by the
An instance of this class may contain one of several base data types including doubles, singles, integers, booleans, strings, and error values.
The class implements the IConvertible interface providing methods to perform conversions between the basic data types. Additionally the class provides methods to perform basic arithetic operations and comparisons between UltraCalcValue objects.If there is no meaningful conversion to an integer this method will throw an InvalidCastException
The instance value's underlying data type must be reference to return a reference, else a UltraCalcReferenceError is returned.
If there is no meaningful conversion to a reference, this method will throw an InvalidCastException
This method returns an
If there is no meaningful conversion, this method will throw an InvalidCastException
If there is no meaningful conversion, this method will throw an InvalidCastException
If there is no meaningful conversion, this method will throw an InvalidCastException
If there is no meaningful conversion, this method will throw an InvalidCastException
If there is no meaningful conversion, this method will throw an InvalidCastException
If there is no meaningful conversion, this method will throw an InvalidCastException
If there is no meaningful conversion, this method will throw an InvalidCastException
If there is no meaningful conversion, this method will throw an InvalidCastException
If there is no meaningful conversion, this method will throw an InvalidCastException
If there is no meaningful conversion, this method will throw an InvalidCastException
If there is no meaningful conversion, this method will throw an InvalidCastException
If there is no meaningful conversion, this method will throw an InvalidCastException
If there is no meaningful conversion, this method will throw an InvalidCastException
If there is no meaningful conversion, this method will throw an InvalidCastException
If there is no meaningful conversion, this method will throw an InvalidCastException
If there is no meaningful conversion, this method will throw an InvalidCastException
When using the 1900 date system in Excel, dates before 3/1/1900 must be corrected, because Excel incorrectly assumes 1900 is a leap year. This overload assumes the 1900 date system is being used as so it corrects the date values.
When using the 1900 date system in Excel, dates before 3/1/1900 must be corrected, because Excel incorrectly assumes 1900 is a leap year. This overload assumes the 1900 date system is being used as so it corrects the date values.
If this is being called to use the resolved value in a calculation,
Note: This operator must take exactly two operands/arguments.
Note: This operator must take exactly two operands/arguments.
Note: This operator must take exactly two operands/arguments.
Note: This operator must take exactly two operands/arguments.
Note: This operator must take exactly two operands/arguments.
Note: This operator must take exactly two operands/arguments.
Note: This operator must take exactly two operands/arguments.
Note: This operator must take exactly two operands/arguments.
Note: This operator must take exactly two operands/arguments.
Note: This operator must take exactly two operands/arguments.
Note: This operator must take exactly two operands/arguments.
Note: This operator must take exactly two operands/arguments.
Note: This operator must take exactly one operand/argument.
Note: This operator must take exactly one operand/argument.
Note: This operator must take exactly one operand/argument.
Returns a meaningful object context for the reference. This could be an UltraGridCell, UltraGridColumn, NamedReference, Control, etc.
UCReference wraps an internal IUltraCalcReference class instance that points to the underlying object. That is, each method simply passes the IUltraCalcReference request to the underlying reference if the object is connected, else it returns, or throws, an appropriate error. UCReference has storage for the reference string and its underlying reference object.
There are two additional methods on UCReference: Connect and Disconnect. Connect will attempt to obtain a reference to the object it refers to given a base reference and it's reference string by calling the base reference's CreateReference method passing it the reference string. If its successful, it will store the newly created reference and use it to dispatch IUltraCalcReference requests against it. Disconnect will simply free the internal reference object after which its IUltraCalcReference methods will deal with a disconnected state. Virtually all references can be in a disconnected state at some point in their lifetime, therefore the CalcEngine uses UCReference instances to connect to all references. That is, the UltraCalcFormulaCompiler.Compile method creates UCRefernces for the all references in the formula string. The CalcEngine exposes a TopoChange event that objects used to notify it of topological changes. The TopoChange event passes a reference to the CalcEngine that describes the object that changed (e.g. column, row, grid, etc) along with a Create / Delete action argument. On Delete events, the CalcEngine will track down all formulas whose LHS is contained by the disconnected reference and delete them. This will clean up the recalc chain and ancestor map of any references including sub-references under the deleted reference. That is, column formulas will be deleted when the event's deleted reference is an entire grid, or cell references that are on the recalc chain when the deleted reference is a column. The ContainsReference on the reference passed with the TopoChange event determines whether the event affects a given reference. Secondly, all formulas who reference the deleted reference will be recalculated. On Create events, the CalcEngine will track down all references contained by the created reference and call the Connect method passing in the their formula's BaseReference. This will cause the CalcReference to reconnect to the underlying reference. Secondly, each re-connected reference's ancestor's will be recalculated.Returns a meaningful object context for the reference. This could be an UltraGridCell, UltraGridColumn, NamedReference, Control, etc.
See the overview on
This can either be the workbook which the named reference belongs to or one of the worksheets in the workbook.
The scope determines how formulas need to preface a name in order to use the named reference.
If the scope is the workbook, formulas in any cell in the workbook can reference the named reference
by specifying just the name or the workbook's file name, an exclamation point, and the name:
When cells in other workbook's want to reference the named reference, they must use the second format
by first specifying the file name when the workbook-scoped named reference exists.
If the scope is a worksheet, formulas in cells of the worksheet can reference the named reference
by specifying just the name. In addition, they can fully qualify the named reference with the worksheet name
and, optionally, the workbook file name:
Formulas in cells of other worksheets in the same workbook can use the named reference as well, but they must
specify the worksheet name and, optionally, the workbook file name:
Formulas in cells of other workbooks can also used the named reference, but they must specify the workbook file
name, worksheet name, and named reference name.
Array formulas are similar to regular formula in that they have the same grammar. However, array formulas must be set
on a single region of cells only. When the array formula is applied to a region of cells, each cell's
Because the array formula stores the region of the cells to which it is applied in the
Array formulas are created through Microsoft Excel by selecting a region of cells, entering a formula for that range, and pressing Ctrl+Shift+Enter. This causes the formula of each cell in the region to appear as follows: {=Formula}.
See the Microsoft Excel documentation for more information on array formulas.
Formulas provide a way to show dynamic values in a cell. The value could be based any number of factors, such as the values of other cells and the time of day. Those alternate cells can even exist in different workbook files on the user's machine or on the internet.
See Microsoft Excel help for more information on formulas.
Use one of the Parse or TryParse overloads to create a new formula.
This method, or one of the other ApplyTo overrides must be used to set the value of a cell to a formula.
After this method returns, the
This method, or one of the other ApplyTo overrides must be used to set the value of a cell to a formula.
After this method returns, the
This method, or one of the other ApplyTo overrides must be used to set the value of a cell to a formula.
After this method returns, the
This method, or one of the other ApplyTo overrides must be used to set the value of a cell to a formula.
After this method returns, the
After this method returns, the
If this is null, the formula has not yet been applied.
Note: The BIFF8Writer class is no longer needed. Use one of the Save overloads on
Note: The
Note: The
Note: The
Custom views provide a way to save display options and optionally print options for the workbook and each worksheet in the workbook. These options can be different from the options currently set on the workbook and worksheets.
Multiple custom views can be saved with a workbook, and the options from a custom view can be applied to its associated workbook by
calling the
There is no state of the workbook indicating the custom view currently applied, so applying a custom view simply copies over all options saved with it to the workbook and its worksheet. If an applied custom view is then changed, those changes will not be updated on the workbook or worksheets. Instead, the custom view will need to be applied again for those changes to be reflected on the workbook or worksheet.
Setting properties on the returned
Adding columns on the returned
Adding rows on the returned
Setting properties on the returned
The name of the custom view is displayed in the custom views dialog of Microsoft Excel and must be case-insensitively unique to other custom views in the workbook.
If the value is False, the return value of
If the value is False, the return value of
Setting properties on the returned
This class provides a way to control how a worksheet is displayed when it is viewed in Microsoft Excel.
The defaults used for each setting are the same defaults with which Microsoft Excel creates a blank worksheet.
For these settings to be saved in the workbook file,
Note: Frozen and unfrozen panes cannot be used simultaneously, so depending on whether the panes are frozen or unfrozen, these settings may not be used.
If the workbook is using a standard palette, the color set may be changed if it is not in the palette. In this case, the closest color in the standard palette will be used.
Depending on the value of this property, either the
If this value is True, the formula string will be displayed in the cell. If the value is False, the result of the formula will be displayed in the cell.
If the outline symbols are displayed, they provide a visual representation of the outline levels or rows and columns in Microsoft Excel. In addition, the outline symbols include the expansion indicators which allow for the expanding and collapsing of outline groups.
The row and column headers show the identifier of the row or column. They also allow the user to easily select all cells in a row or column by clicking them.
When this value is True, one ruler will display above the column headers of the active page in page layout view. Another ruler will also display before the row headers of the active page.
Note: This property will only affect the worksheet view if the
Note: The
If this value is True, cells with a value of zero will display their values; otherwise, those cells will display as blanks.
For these settings to be saved in the workbook file,
Note: Frozen and unfrozen panes cannot be used simultaneously, so depending on whether the panes are frozen or unfrozen, these settings may not be used.
The view determines the overall display of the worksheet in Microsoft Excel.
Note: The
The visibility determines whether the worksheet's tab will appear in the tab bar at the bottom of Microsoft Excel.
The defaults used for each setting are the same defaults with which Microsoft Excel creates a blank worksheet.
Magnifications are stored as percentages of the normal viewing magnification. A value of 100 indicates normal magnification whereas a value of 200 indicates a zoom that is twice the normal viewing magnification.
The properties explicitly defined on this class and not inherited from the base class,
This class provides a way to control how a workbook is displayed when it is viewed in Microsoft Excel.
The defaults used for each setting are the same defaults with which Microsoft Excel creates a blank workbook.
The vertical scroll bar occupies the entire height of the application if it is visible.
The horizontal scroll bar occupies the width of the application not used by the worksheet tab bar, if it is visible. Otherwise, it occupies the entire width of the application.
If this is an instance of
Note: If the selected worksheet does not have its
If the value is False, the
This value is only used if
A value of 1000 indicates the worksheet tab bar occupies the entire width of the application, while a value of 0 indicates the worksheet tab bar has no width.
All space not occupied by the worksheet tab bar will be used by the horizontal scroll bar, if it is visible.
The defaults used for each setting are the same defaults with which Microsoft Excel creates a blank workbook.
Note: This property will have no affect on the workbook if
Note: This setting cannot be saved with a
Note: This setting cannot be saved with a
Note: This setting cannot be saved with a
Note: This setting cannot be saved with a
This error occurs when a value isn't available for some part of a formula.
There is no error constant for a circularity in Microsoft Excel and a circularity cannot be the result of a formula in Microsoft Excel.
However, for run-time purposes, after loading or before saving a workbook, this error value will be used for the result of formulas
which cause circular references when the owning workbook has
In Microsoft Excel, setting a circular reference formula on a cell will show an error dialog the first time the problem occurs. Subsequent formulas violating the circular reference restriction will just evaluate to zero. Therefore, when this value is encountered in a cell, it can be treated as a zero for calculation purposes. This error value will be returned though so an actual zero value in a cell can be differentiated from a circularity error.
Note: Because there is no circularity error constant in Microsoft Excel, this error value cannot be assigned to a cell manually. Attempting to assign this error value to a cell will result in an InvalidOperationException to be thrown. This error value will only be valid as the result of a formula which has been applied to a cell.
This error occurs when a number is divided by zero.
This error occurs when there is an intersection of two references that do not contain any common cells. The intersection operator is a space between two references.
This error occurs when a cell reference or cell range reference is not valid.
This error occurs when there are invalid numeric values in a formula.
This error occurs when text in a formula is not recognized.
This error occurs when an incorrect argument or operand is used in a function.
The formatting of the string is controlled in a similar fashion as it would be in Microsoft Excel. In Excel, the user must select a portion of the text and set the various formatting properties of that selected text.
With the FormattedString, a portion of the string is "selected" by calling either
Getting the formatting properties of a
This will return the same value as
This should be used if the same formatted string needs to be used in multiple cells.
The FormattedString class can only exist as the
The cloned FormattedString only takes its original configuration for this instance. If this instance is cloned and than changed, the clone will not be changed as well; it will remain as it was when it was cloned.
If the start index is greater than or equal to the length of the unformatted string, no exception
will be thrown. It will be thrown later when one of the formatting properties of the returned
If the start index is greater than or equal to the length of the unformatted string, no exception
will be thrown. It will be thrown later when one of the formatting properties of the returned
If the new unformatted string assigned is shorter than the old unformatted string, all formatting outside the range of the new value will be lost.
The formatting of the string is controlled in a similar fashion as it would be in Microsoft Excel. In Excel, the user must select a portion of the text and set the various formatting properties of that selected text.
With the
Getting the formatting properties of a FormattedStringFont will return the formatting of the first character in font's selection range. This is similar to Excel, which will update the formatting interface to reflect the formatting of the first character in a selection range when a cell's text is selected.
If a property of a font has a default value, value of the previous font in resolution chain is used. The resolution priority
is the following:
For example, if a column font is set to blue and bold and a row font is set to italic and not bold, the font in the cell at
the intersection of the row and column would have blue, italic text in the saved workbook.
A negative value indicates the default font height, in which case the
All characters in the selection range of this font will be affected by setting this property. Getting this property will return a value which indicates the formatting of the first character in this font's range.
All characters in the selection range of this font will be affected by setting this property. Getting this property will return a value which indicates the formatting of the first character in this font's range.
All characters in the selection range of this font will be affected by setting this property. Getting this property will return a value which indicates the formatting of the first character in this font's range.
All characters in the selection range of this font will be affected by setting this property. Getting this property will return a value which indicates the formatting of the first character in this font's range.
All characters in the selection range of this font will be affected by setting this property. Getting this property will return a value which indicates the formatting of the first character in this font's range.
All characters in the selection range of this font will be affected by setting this property. Getting this property will return a value which indicates the formatting of the first character in this font's range.
All characters in the selection range of this font will be affected by setting this property. Getting this property will return a value which indicates the formatting of the first character in this font's range.
All characters in the selection range of this font will be affected by setting this property. Getting this property will return a value which indicates the formatting of the first character in this font's range.
The columns in this collection do not necessarily have their
This collection does not allow duplicate values. If the specified column already exists in the collection, nothing will happen. This collection also keeps itself sorted, so the column added will not necessarily be added at the end of the collection.
The rows in this collection do not necessarily have their
This collection does not allow duplicate values. If the specified row already exists in the collection, nothing will happen. This collection also keeps itself sorted, so the row added will not necessarily be added at the end of the collection.
Cell formatting is associated with each cell, row, and column in a Worksheet. If a property of the cell format has a default
value, the value of the previous format in resolution chain is used. The resolution priority is the following:
For example, if a row format background color is blue, a column format background color is red, and a cell with the
default background color (Color.Empty) is at the intersection of the row and column, it will have a blue color in exported
file (as the row has a higher priority than the column). The Resolution process is done internally during exporting process,
which means that cell format background color is always default if not explicitly set.
If the border color is set to a non-default value and the
If the border style is set to a non-default value and the
If fill pattern is set to Solid, the cell is filled using just the
If the background color is set to a non-default value and
If the foreground color is set to a non-default value and
This font formatting is just the default font used in the cell. This can be overridden by strings on a character by character basis by
using the
For more information on excel format strings, consult Microsoft Excel help.
If the border color is set to a non-default value and the
If the border style is set to a non-default value and the
The Locked valid is used in Excel file only if the associated
If the border color is set to a non-default value and the
If the border style is set to a non-default value and the
Cell text rotation, in degrees; 0 – 90 is up 0 – 90 degrees, 91 – 180 is down 1 – 90 degrees, and 255 is vertical.
If True, the size of the cell font will shrink so all data fits within the cell.
If the border color is set to a non-default value and the
If the border style is set to a non-default value and the
If True, and the row associated with the cell has a default
The
The
Named reference names are compared case-insensitively.
Named reference names are compared case-insensitively.
Named reference names are compared case-insensitively.
This class provides a way to control how a worksheet is printed.
The defaults used for each setting are the same defaults with which Microsoft Excel creates a blank worksheet.
The '&' character in the header and footer is a special character. Depending on what is after it,
the formatting of the text can be controlled or dynamic text can be inserted. Below is a list of
the available commands:
The header or footer string could look like this: &L&"Arial,Bold"&D&CPage &P of &N on &A&R&14&F.
The '&' character in the header and footer is a special character. Depending on what is after it,
the formatting of the text can be controlled or dynamic text can be inserted. Below is a list of
the available commands:
The header or footer string could look like this: &L&"Arial,Bold"&D&CPage &P of &N on &A&R&14&F.
A value of zero indicates no maximum is used in the horizontal direction. As many pages as needed will be used.
Note: For MaxPagesHorizontally and
A value of zero indicates no maximum is used in the vertical direction. As many pages as needed will be used.
Note: For
If this is set to a value of UseStartPageNumber, the first page is numbered using the
A cell can have an error value if its
If this is set to a value of PrintAsDisplayed, the comments will only print if they are displayed on the worksheet. If comments are hidden but indicators are shown, neither the indicators nor the comments will print.
The row and column headers show the identifier of the row or column.
The scaling factor is similar to magnifications in that is it stored as a percentage of the normal scaling. A value of 100 indicates normal scaling whereas a value of 200 indicates the worksheet is scaled to twice its normal size.
Note: For ScalingFactor to affect the way the worksheet is printed,
If this is set to a value of UseScalingFactor,
If this is set to a value of FitToPages,
For this value to be used,
The PackageConformanceManager does not verify this convention.
As stipulated in Annex H, Part 4 of
'Office Open XML Part 2 - Open Packaging Conventions':
"The format designer shall specify and the format producer shall create at most
one core properties relationship for a package. A format consumer shall
consider more than one core properties relationship for a package to be an error."
As stipulated in Annex H, Part 4 of
'Office Open XML Part 2 - Open Packaging Conventions':
"The format designer shall not specify and the format producer shall not
create Core Properties that use the Markup Compatibility namespace as defined
in Annex F, “Standard Namespaces and Content Types”. A format consumer shall
consider the use of the Markup Compatibility namespace to be an error."
As stipulated in Annex H, Part 4 of
'Office Open XML Part 2 - Open Packaging Conventions':
"Producers shall not create a document element that contains refinements to
the Dublin Core elements, except for the two specified in the schema: dcterms:created
and dcterms:modified. Consumers shall consider a document element that violates this
constraint to be an error."
As stipulated in Annex H, Part 4 of
'Office Open XML Part 2 - Open Packaging Conventions':
"Producers shall not create a document element that contains the xml:lang
attribute. Consumers shall consider a document element that violates this
constraint to be an error."
As stipulated in Annex H, Part 4 of
'Office Open XML Part 2 - Open Packaging Conventions':
"Producers shall not create a document element that contains the xsi:type
attribute, except for a 'dcterms:created' or 'dcterms:modified' element where
the xsi:type attribute shall be present and shall hold the value dcterms:W3CDTF,
where dcterms is the namespace prefix of the Dublin Core namespace. Consumers
shall consider a document element that violates this constraint to be an error."
As stipulated in section 8.1.4, paragraph 2 of
'Office Open XML Part 2 - Open Packaging Conventions':
"The XML 1.0 specification allows for the usage of Document Type Definitions (DTDs),
which enable Denial of Service attacks, typically through the use of an internal entity
expansion technique. As mitigation for this potential threat, DTD declarations shall not
be used in the XML markup defined in this Open Packaging specification. IPackage implementers
shall enforce this requirement upon creation and retrieval of the XML content and shall treat
the presence of DTD declarations as an error."
As stipulated in section 8.1.1.2 of
'Office Open XML Part 2 - Open Packaging Conventions':
"Part name equivalence is determined by comparing part names as case-insensitive
ASCII strings. Packages shall not contain equivalent part names and package
implementers shall neither create nor recognize packages with equivalent part
names."
Atomic shapes are singular shape entities, such as an image, a polygon, or text.
Compound shapes are groupings of shapes, and are represented by
Currently, not all shape information is customizable (such as shape rotation). However,
for round-tripping purposes, when a shape is loaded from an Excel file, this
information in maintained with the shape. See
This method will only be needed until all shape information is supported and customizable.
After all shape data can be controlled, this method will become obsolete. Currently, all
unsupported data will be stored with the shape for round-tripping purposes. For example,
if an Excel file with complex and unsupported shapes is loaded into a
Note: This method only clears unsupported data. In future versions of the product, as more shape data is supported, this method will have different effects on the shape, until eventually all data is supported and this method will have no effect on the shape.
The bounds returned by this method are only valid with the current configuration of the worksheet. If any rows or columns before or within the shape are resized, these bounds will no longer reflect the position of the shape.
The shape will only be position at the specified bounds while the worksheet remains in the current configuration. If any rows or columns before or within the shape are resized, the shape will no longer be placed at the bounds specified.
This anchor cell, along with the
These percentages are expressed as distance across the associated dimension of the cell, starting at the top-left corner of the cell. For example, (0.0, 0.0) represents the top-left corner of the cell, whereas (100.0, 100.0) represents the bottom-right corner of the cell. (50.0, 10.0) would represent the location in the cell which is centered horizontally, and a tenth of the way down from the top.
This value will not be saved for shapes contained in a
Note: This property setting will only have an effect in Microsoft Excel. It has no bearing on the shape's position when related rows and columns are resized though the Excel assembly. In these situations, shapes will act as though the PositioningMode is set to MoveAndSizeWithCells.
This anchor cell, along with the
These percentages are expressed as distance across the associated dimension of the cell, starting at the top-left corner of the cell. For example, (0.0, 0.0) represents the top-left corner of the cell, whereas (100.0, 100.0) represents the bottom-right corner of the cell. (50.0, 10.0) would represent the location in the cell which is centered horizontally, and a tenth of the way down from the top.
The properties exposed by this class can be changed on a Microsoft Excel file by right-clicking it in Windows Explorer and editing the properties on the Summary tab.
The value of the property has no effect on the contents of the file when opened in a host application. It is simply extra data associated with the document.
The value of the property has no effect on the contents of the file when opened in a host application. It is simply extra data associated with the document.
The value of the property has no effect on the contents of the file when opened in a host application. It is simply extra data associated with the document.
The value of the property has no effect on the contents of the file when opened in a host application. It is simply extra data associated with the document.
The value of the property has no effect on the contents of the file when opened in a host application. It is simply extra data associated with the document.
The value of the property has no effect on the contents of the file when opened in a host application. It is simply extra data associated with the document.
The value of the property has no effect on the contents of the file when opened in a host application. It is simply extra data associated with the document.
The value of the property has no effect on the contents of the file when opened in a host application. It is simply extra data associated with the document.
The value of the property has no effect on the contents of the file when opened in a host application. It is simply extra data associated with the document.
Setting this on the
Determines whether a custom palette will be created or whether to use the standard Excel palette of colors when exporting.
A custom palette will make the exported Excel Workbook appear with exactly the same colors as the object on the screen. However, using a custom palette can cause problems when copying and pasting from one Excel Workbook to another. Since the two workbooks are unlikely to share exactly the same palette, colors may change.
Using the standard Excel palette means that the colors in the Excel Workbook will not exactly match those on the screen. For each color used by the item on-screen, the closest matching color in the standard palette will be used in Excel. Copy and Paste using a Workbook creating using the Standard palette will not result in any color changes - unless the pasting is done onto a Workbook with a custom palette.
The worksheet visibility indicates how the worksheet will be displayed in the tab bar at the bottom of the workbook window in Microsoft Excel.
Comments cannot be added to a worksheet's or a shape group's shapes collection. Instead, they must be set directly on the cell
with the cell's
It is not required that the anchors of this shape be initialized before setting it as the comment of a cell. If the
Primitive shapes, such as polygons, and cell comments can display regular text or text with mixed formatting and are derived from this class.
Getting the value of this property will always return a non-null value. If null is set on the property, it will subsequently return an empty formatted string.
This information is not displayed in the Microsoft Excel UI and is for informational purposes only.
Note: Frozen and unfrozen panes cannot be used simultaneously, so depending whether the panes are frozen or unfrozen, these settings may not be used or saved.
The defaults used for each setting are the same defaults with which Microsoft Excel creates a blank worksheet.
This affects the scroll position for the right pane(s) of the worksheet and is only used if the worksheet is split vertically.
This affects the scroll position for the bottom pane(s) of the worksheet and is only used if the worksheet is split horizontally.
The defaults used for each setting are the same defaults with which Microsoft Excel creates a blank worksheet.
The frozen columns will always remain in view, regardless of the horizontal scroll position of the worksheet.
Note: If the number of frozen columns specified is more than the amount of visible columns in the worksheet, the worksheet may not scroll correctly.
The frozen rows will always remain in view, regardless of the vertical scroll position of the worksheet.
Note: If the number of frozen rows specified is more than the amount of visible rows in the worksheet, the worksheet may not scroll correctly.
Named references allow for names to be used in formulas instead of complex formulas or cell references. For example, instead of using the formula =SUM(E1:E20), a named reference with a name of 'Sales' can be defined to point to the range of E1:E20 (the named reference's formula would be defined like this: =Sheet1!$E$1:$E$20). Then the original formula could be expressed as =SUM(Sales).
Each named reference has an associated scope, which can either be the
Named references from external workbooks must always be referenced with the scope first. If the named reference's scope is the external workbook, the name is accessed by specifying the workbook file name followed by the name, such as in the following formula: ='C:\ExternalWorkbook.xls'!SalesTax. If the named reference has a scope of a worksheet in the workbook, it is referenced by specifying the file name, worksheet, and name: ='C:\[ExternalWorkbook.xls]Sheet1'!SalesTax.
Named references with different scopes can have the same names, but if two named references have the same scope, they must have case-insensitively unique names.
The formula will be parsed using the
Any default properties of the cell's format will take their value from this format when getting a resolved format.
This property is deprecated. Use
Note: Hidden and Expanded are opposites (setting Expanded to True is equivalent to setting Hidden to False).
Microsoft Excel supports hierarchical grouping of rows and columns with a maximum of seven levels of hierarchy. To create a group, set adjacent rows or columns to same outline level. When rows or columns are grouped, an outline indicator will provide a visual representation of the outline level. In addition, an outline group has an expansion indicator at one end of the group, which allows the user to easily hide and unhide all rows or column in the group with a single click.
Because of the large number of elements on a worksheet, this collection internally creates elements when they are requested. Iterating this collection will only iterate the elements which have already been created.
Note: Frozen and unfrozen panes cannot be used simultaneously, so depending whether the panes are frozen or unfrozen, these settings may not be used or saved.
The defaults used for each setting are the same defaults with which Microsoft Excel creates a blank worksheet.
This affects the scroll position for the left pane(s) of the worksheet and is used regardless of whether or not the worksheet is split vertically.
This affects the scroll position for the top pane(s) of the worksheet and is used regardless of whether or not the worksheet is split horizontally.
If this value is zero, the left pane occupies the entire visible area of the worksheet. Otherwise, the left pane occupies the specified width and the right pane occupies the remaining area of the worksheet.
If this value is zero, the top pane occupies the entire visible area of the worksheet. Otherwise, the top pane occupies the specified height and the bottom pane occupies the remaining area of the worksheet.
This class is used for round-tripping purposes, so unsupported shapes which have been loaded can be saved back out with the workbook. The class allows the unsupported shapes to be identified in shape collections so they can be removed. This shape will become obsolete in future versions when all shape types are supported.
Every workbook consists of one or more worksheets (
The new workbook created is empty. At least one
The new workbook created is empty. At least one
The new workbook created is empty. At least one
The new workbook created is empty. At least one
Use of this procedure will simplify you code for complex font formats and increase speed of resulting program. It will not reduce total number of font formats in a workbook as font formats are internally cached no mather which method is used.
Use of this procedure will simplify you code for complex cell formats and increase speed of resulting program. It will not reduce total number of cell formats in a workbook as cell formats are internally cached no mather which method is used.
This can be used when the
All types within the registered assembly are enumerated and any that derive from
Users can build custom functions used in formulas by sub-classing the
If calculations were not suspended when this is called, it will have no effect.
For each call to
The workbook will be written in the format specified by the
The
Note: This method creates a
The workbook will be written in the format specified by the
The
Note: This method creates a
The workbook will be written in the format specified by the
The workbook will be written in the format specified by the
This should be used when adding many formulas or modifying large amounts of data on a workbook at once so formulas are not calculated each time cells are dirtied.
For each call to SuspendCalculations, a call to
When loading the workbook, the format will be determined the file extension or by the contents of the file. If the extension is
a stanard Excel format entension, the workbook will be assumed to be in the corresponding format. Otherwise, the contents of the
file will be examined to try to determine the format. The
Note: This method creates a
When loading the workbook, the format will be determined the file extension or by the contents of the file. If the extension is
a stanard Excel format entension, the workbook will be assumed to be in the corresponding format. Otherwise, the contents of the
file will be examined to try to determine the format. The
Note: This method creates a
When loading the workbook, the format will be determined the file extension or by the contents of the file. If the extension is
a stanard Excel format entension, the workbook will be assumed to be in the corresponding format. Otherwise, the contents of the
file will be examined to try to determine the format. The
Note: This method creates a
When loading the workbook, the format will be determined the file extension or by the contents of the file. If the extension is
a stanard Excel format entension, the workbook will be assumed to be in the corresponding format. Otherwise, the contents of the
file will be examined to try to determine the format. The
Note: This method creates a
When loading the workbook, the format will be determined the file extension or by the contents of the file. If a FileStream is
specified, the extension of the file will be examined. If the extension is a stanard Excel format entension, the workbook will
be assumed to be in the corresponding format. Otherwise, the contents of the file will be examined to try to determine the format.
The
When loading the workbook, the format will be determined the file extension or by the contents of the file. If a FileStream is
specified, the extension of the file will be examined. If the extension is a stanard Excel format entension, the workbook will
be assumed to be in the corresponding format. Otherwise, the contents of the file will be examined to try to determine the format.
The
When loading the workbook, the format will be determined the file extension or by the contents of the file. If a FileStream is
specified, the extension of the file will be examined. If the extension is a stanard Excel format entension, the workbook will
be assumed to be in the corresponding format. Otherwise, the contents of the file will be examined to try to determine the format.
The
When loading the workbook, the format will be determined the file extension or by the contents of the file. If a FileStream is
specified, the extension of the file will be examined. If the extension is a stanard Excel format entension, the workbook will
be assumed to be in the corresponding format. Otherwise, the contents of the file will be examined to try to determine the format.
The
This property is deprecated. Use
If this is set to a value of Manual, the
The value of this property will affect the row and columns labels of the workbook when opened in Microsoft Excel. In addition, it will affect the display of formulas referencing different cells.
Each custom view stores display settings and optionally print settings, which can later be applied to the workbook
and its worksheets as one operation, through both the Microsoft Excel UI and the Excel assembly by calling the
The document properties are pieces of information which provide details on the content of the workbook, such as the author, title, and subject of the workbook.
When iterative calculations are enabled, a formula is allowed to use circular references,
or directly or indirectly reference the cell to which it belongs. Microsoft Excel stops iteratively
calculating formulas after iterating
When iterative calculations are disabled, circular references are not allowed, and a formula which
references the cell to which it belongs, directly or indirectly, will cause Microsoft Excel to show an
error message and the cell will contain a
This property is only valid when
When iterative calculations, or circular references, are enabled, this property determines the maximum change in
all values of a formula between two iterations that will cause the formula to exit iterative calculations. Iterative
calculations will also be stopped if the formula iterates
This property is only valid when
When iterative calculations, or circular references, are enabled, this property determines the number of iterations allowed when calculating iteratively.
Named references are typically used to refer to cells or ranges of cells by name. The named reference names are used by formulas instead of explicitly naming the cells or cell ranges.
The precision determines whether to use the actual value of the cell or the display value of the cell. These are typically the same, but the format of a cell could cause a loss of precision in the displayed value. For example, if a cell's value is 18.975, and a currency format is used for the cell, the display value will be 18.98.
If True, prevents changes to worksheet and to locked cells.
This property only applies if the
This value will only be used when the workbook is opened in Microsoft Excel. When referencing external values and saving a workbook through the Excel assembly, external linked values will never be saved.
In Microsfot Excel 2003, carriage return characters are displayed as boxes. Most of the time, this should not be seen and removing the carriage return characters has no adverse effect on the layout of the text within a cell. Therefore, this property is True by default.
Use this collection to add custom styles to Excel workbook. The user can apply those styles to different parts of excel workbook and thereby set complex formatting with ease.
The window options control properties of the child MDI window showing the workbook in Microsoft Excel. They also control display options of the workbook which do not change based on the selected worksheet.
Use
The properties explicitly defined on this class and not inherited from the base class,
The defaults used for each setting are the same defaults with which Microsoft Excel creates a blank workbook.
Note: This setting cannot be saved with a
If the worksheet tab bar is not visible, this value will not be used, but it is still saved with the workbook.
Note: This setting cannot be saved with a
Note: This setting cannot be saved with a
An Excel worksheet is essentially a table with a limited number of rows and columns. To create new worksheet, use
The
If a region reference is specified instead of a cell reference, the top-left cell of the region at the address will be returned.
If a region reference is specified instead of a cell reference, the top-left cell of the region at the address will be returned.
The
If a region reference is specified instead of a cell reference, the top-left cell of the region at the address will be returned.
The origin cell specified will not be used if the workbook has an A1 cell reference mode or an absolute R1C1 address is specified.
If a region reference is specified instead of a cell reference, the top-left cell of the region at the address will be returned.
The origin cell specified will not be used if the specified cell reference mode is A1 or an absolute R1C1 address is specified.
The
If a cell reference is specified instead of a region reference, a 1x1 region containing the cell at the address will be returned.
If a cell reference is specified instead of a region reference, a 1x1 region containing the cell at the address will be returned.
The
If a cell reference is specified instead of a region reference, a 1x1 region containing the cell at the address will be returned.
The origin cell specified will not be used if the workbook has an A1 cell reference mode or an absolute R1C1 address is specified.
If a cell reference is specified instead of a region reference, a 1x1 region containing the cell at the address will be returned.
The origin cell specified will not be used if the specified cell reference mode is A1 or an absolute R1C1 address is specified.
The collection of columns is a fixed length collection, with the maximum number of columns in the collection being
Note: Iterating the collection will not create all columns. It will only iterate the columns which have already been used. To create and iterate all columns in the worksheet use a For loop, iterating from 0 to one less than the maximum column count, and pass in each index to the collection's indexer.
The default column width is the width of all columns which do not have their width explicitly set to a positive number.
The value assigned must be between 0 and 65535. Invalid values will be automatically adjusted to valid values.
The default row height is the height of all rows which do not have their height explicitly set to a positive number.
If the assigned value is -1, the default row height will then be calculated based on the default font for the workbook, and subsequently getting this property will return the font-based default row height.
The display options include any settings which affect the display of the worksheet when viewed in Microsoft Excel. These settings will not affect the printed worksheet or the data stored in the worksheet.
This image is tiled across the background of the worksheet. If null, the worksheet will have no background.
Negative one indicates the worksheet has been removed from its parent collection.
Use
The worksheet name is case-insensitively unique in the workbook.
The worksheet name is shown in the tab for the worksheet. In addition, the worksheet name can be used by formulas from other worksheets to refer to cells in this worksheet.
The print options include any settings which affect the printed appearance of the worksheet. These settings will not affect the data in the worksheet. Although these are not display settings, some worksheet display styles will display all or some of the print options, so these settings may affect the display of the worksheet when viewed in Microsoft Excel.
In protected worksheet cells which are locked can not be modified.
The collection of rows is a fixed length collection, with the maximum number of rows in the collection being
Note: Iterating the collection will not create all rows. It will only iterate the rows which have already been used. To create and iterate all rows in the worksheet use a For loop, iterating from 0 to one less than the maximum row count, and pass in each index to the collection's indexer.
If the worksheet has been removed from its parent
The bounds returned by this method are only valid with the current configuration of the worksheet. If any rows or columns before the cell are resized, these bounds will no longer reflect the position of the cell.
The cells in the left-most column and top-most row of the data table will return null for the associated data table.
If a data table is associated with the cell, getting the
If the cell is part of a merged cell region, getting or setting the
Use this property to set cell formatting specific to the cell. If you will be appling the format to numerous cells,
see the
If this cell belongs to a merged cell region, getting the CellFormat will get the CellFormat of the associated merged cell region.
If a formula has been applied to the cell, getting the
If this cell belongs to a merged cell region and it is the top-left cell of the region, getting and setting the value will get and set the value of the associated merged cell region. Getting the value of other cells in a merged cell region will always return null. Setting the value of other cells in a merged cell region will have no effect.
If a formula has been applied to the cell or a data table is associated with the cell, getting the Value will return the calculated value of the cell.
The types supported for the value are:
Cells in this collection are lazily created (they are only created and added to the collection when they are accessed). If this collection is enumerated, it only enumerates the cells which were already accessed.
Note: Iterating the collection will not create all cells. It will only iterate the cells which have already been used. To create and iterate all cells in the worksheet use a For loop, iterating from 0 to one less than the maximum column count, and pass in each index to the collection's indexer.
If the width of the column is less than zero, the
The value assigned must be between 0 and 65535. Invalid values will be automatically adjusted to valid values.
Columns in this collection are lazily created (they are only created and added to the collection when they are accessed). Therefore, if this collection is enumerated, it only enumerates the columns which were already accessed.
Note: Iterating the collection will not create all columns. It will only iterate the columns which have already been used. To create and iterate all columns in the worksheet use a For loop, iterating from 0 to one less than the maximum column count, and pass in each index to the collection's indexer.
Data tables are a way to show the results of one or more formulas by trying many different values in the variables of the formulas at the same time, and showing the different results in a table. An excellent example of a data table application would be for a multiplication table. A multiplication table shows results for the formula =X*Y. However, it shows many different results for the formula, where each result is determined by using different values for X and Y. These results are displayed in a table, where each cell in the table shows the formula's result for specific values of X and Y, which are labeled in the row and column headers, respectively. Therefore, each cell in a row will use the same X value, and each cell in a column will use the same Y value.
The multiplication table is known as a two-variable data table. Two-variable data tables are characterized by having a single formula and values in the row and column headers of the table. The formula is entered into the top-left cell of the data table and usually references at least two cells outside the data table, known as the column-input and row-input cells. When the formula is evaluated for a specific cell in the data table, the reference to the column-input cell in the formula is replaced with the value in the cell's row header (this may seem backwards, but the values in the row headers run down the left column of the data table, which is why they are used for the column-input cell), and the reference to the row-input cell is replaced with the value in the cell's column header.
Another type of data table is the one-variable data table. A one-variable data table can be a column-oriented or a row-oriented data table. A column-oriented data table has data in the cells of the left column and formulas in the cells of the top row (anything in the top-left cell of the data table is ignored in this type of data table). Usually, the formulas in the top row all reference the same cell outside the data table, known as the column-input cell. When a cell in the table is evaluated, the formula in its column header is used, with the reference to the column-input cell replaced by the value in cell's row header.
A row-oriented one-variable data table is formed like a column-oriented data table, except the values run along the top row, the formulas run down the left column, and the cell referenced by all formulas is known as the row-input cell.
Any interior cells (cells not in the left-most column or top row) in this region will have their values removed
when this is set. If any interior cells have array formulas with a region that crosses outside the data
table, an error will occur. However, if the array formula's region is confined to cells in the
interior of the data table, the array formula will have
After the cells in the table have been specified, the interior cells' values cannot be modified.
Note: The
This represents the cell reference in all formulas of the data table to replace with row header values.
If this and the
Note: The RowInputCell and ColumnInputCell cannot be within the
This represents the cell reference in all formulas of the data table to replace with column header values.
If this and the
Note: The RowInputCell and ColumnInputCell cannot be within the
The input cells specified must be different cell references and at least one must be non-null.
See the
Once a data table is removed from the collection, it can no longer be used.
Once a data table is removed from the collection, it can no longer be used.
Once a data table is removed from the collection, it can no longer be used.
The defaults used for each setting are the same defaults with which Microsoft Excel creates a blank worksheet.
Magnifications are stored as percentages of the normal viewing magnification. A value of 100 indicates normal magnification whereas a value of 200 indicates a zoom that is twice the normal viewing magnification.
Magnifications are stored as percentages of the normal viewing magnification. A value of 100 indicates normal magnification whereas a value of 200 indicates a zoom that is twice the normal viewing magnification.
Magnifications are stored as percentages of the normal viewing magnification. A value of 100 indicates normal magnification whereas a value of 200 indicates a zoom that is twice the normal viewing magnification.
If the columns are ordered right to left, other aspects of the worksheet display differently. The vertical scrollbar will display on the left side of the worksheet and the worksheet tab bar, usually displayed on the left side of the worksheet, will display on the right side.
Note: For this value to affect the display of the worksheet, the
Note: The
If the tab bar is not visible, this color will not be seen.
The shape will only be position at the specified bounds while the worksheet remains in the current configuration. If any rows or columns before or within the shape are resized, the shape will no longer be placed at the bounds specified.
If
Merged cell regions cannot overlap (a cell can only belong to one merged cell region). In addition,
The bounds returned by this method are only valid with the current configuration of the worksheet. If any rows or columns before the region are resized, these bounds will no longer reflect the position of the region.
The comment of the merged region can also be accessed from the top-left cell of the merged region of cells.
The types supported for the value are:
The new merged cell region will take its value from the first cell containing a value, starting at the top-left and going across then down in the region. The value of all other cells will be lost. Similarly, the new region will initialize its cell format from the first cell containing a non-default cell format.
When a merged cell region is removed, the top-left cell in the region will retain the region's value. All other cells in the region will have a null value. In addition, all cells in the merged region will have the region's cell format when it is removed.
When a merged cell region is removed, the top-left cell in the region will retain the region's value. All other cells in the region will have a null value. In addition, all cells in the merged region will have the region's cell format when it is removed.
When a merged cell region is removed, the top-left cell in the region will retain the region's value. All other cells in the region will have a null value. In addition, all cells in the merged region will have the region's cell format when it is removed.
The collection of cells is a fixed length collection, with the maximum number of cells in the collection being
Note: Iterating the collection will not create all cells. It will only iterate the cells which have already been used. To create and iterate all cells in the worksheet use a For loop, iterating from 0 to one less than MaxExcelColumnCount, and pass in each index to the collection's indexer.
If the height of the row is less than zero, the
The value assigned must be between 0 and 8192. Invalid values will be automatically adjusted to valid values.
Rows in this collection are lazily created (they are only created and added to the collection when they are accessed). If this collection is enumerated, it only enumerates the rows which were already accessed.
Note: Iterating the collection will not create all rows. It will only iterate the rows which have already been used. To create and iterate all rows in the worksheet use a For loop, iterating from 0 to one less than the maximum row count, and pass in each index to the collection's indexer.
If the workbook originally had no worksheets, the newly added worksheet will become the selected worksheet of
the workbook. This can be changed after more worksheets are added by setting the
If there are any
If there are any
If there are any
Worksheet names are compared case-insensitively.