154 lines
3.8 KiB
Plaintext
154 lines
3.8 KiB
Plaintext
|
|
|||
|
|
|||
|
ADDENDUM to WORKSHEET FILE FORMAT Document (2-19-85):
|
|||
|
|
|||
|
|
|||
|
The following supplements the discussion of the FORMULA record
|
|||
|
type in the Worksheet File Format document.
|
|||
|
__________________________________________________________________________
|
|||
|
|
|||
|
|
|||
|
Formula Record Type
|
|||
|
|
|||
|
byte 0 = format
|
|||
|
byte 1 & 2 = column
|
|||
|
byte 3 & 4 = row
|
|||
|
byte 5-12 = formula numeric value (IEEE long real)
|
|||
|
byte 13 & 14 = formula size (bytes)
|
|||
|
byte 15 & above = formula code, compiled Reverse-Polish
|
|||
|
Internal Notation; max of 2048 bytes
|
|||
|
|
|||
|
Opcode Explanation
|
|||
|
------ ------------
|
|||
|
|
|||
|
0 push constant...followed by 8 byte #
|
|||
|
1 push variable...followed by 4 byte column,row...a
|
|||
|
relative coordinate has its most significant bit set
|
|||
|
2 push range...followed by 8 byte begin/end column,row
|
|||
|
3 end of formula
|
|||
|
4 parentheses
|
|||
|
5 integer constant...followed by 2 byte integer
|
|||
|
6 push string...followed by null terminated string
|
|||
|
7 unused
|
|||
|
8 unary -
|
|||
|
9 binary +
|
|||
|
10 binary -
|
|||
|
|
|||
|
11 *
|
|||
|
12 /
|
|||
|
13 ^
|
|||
|
14 =
|
|||
|
15 <>
|
|||
|
16 <=
|
|||
|
17 >=
|
|||
|
18 <
|
|||
|
19 >
|
|||
|
20 #AND#
|
|||
|
|
|||
|
21 #OR#
|
|||
|
22 #NOT#
|
|||
|
23 unary +
|
|||
|
24 &
|
|||
|
25..30 unused
|
|||
|
|
|||
|
31 @na
|
|||
|
32 @err
|
|||
|
33 @abs
|
|||
|
34 @int
|
|||
|
35 @sqrt
|
|||
|
36 @log
|
|||
|
37 @ln
|
|||
|
38 @pi
|
|||
|
39 @sin
|
|||
|
40 @cos
|
|||
|
|
|||
|
41 @tan
|
|||
|
42 @atan2
|
|||
|
43 @atan
|
|||
|
44 @asin
|
|||
|
45 @acos
|
|||
|
46 @exp
|
|||
|
47 @mod
|
|||
|
48 @sel
|
|||
|
49 @isna
|
|||
|
50 @iserr
|
|||
|
|
|||
|
51 @false
|
|||
|
52 @true
|
|||
|
53 @rand
|
|||
|
54 @date
|
|||
|
55 @now
|
|||
|
56 @pmt
|
|||
|
57 @pv
|
|||
|
58 @fv
|
|||
|
59 @if
|
|||
|
60 @day
|
|||
|
|
|||
|
61 @month
|
|||
|
62 @year
|
|||
|
63 @round
|
|||
|
64 @time
|
|||
|
65 @hour
|
|||
|
66 @minute
|
|||
|
67 @second
|
|||
|
68 @isnumber
|
|||
|
69 @isstring
|
|||
|
70 @length
|
|||
|
|
|||
|
71 @value
|
|||
|
72 @fixed
|
|||
|
73 @mid
|
|||
|
74 @chr
|
|||
|
75 @ascii
|
|||
|
76 @find
|
|||
|
77 @datevalue
|
|||
|
78 @timevalue
|
|||
|
79 @cell pointer
|
|||
|
80 @sum..followed by 1 byte >>> # of args
|
|||
|
|
|||
|
81 @avg..same as above
|
|||
|
82 @cnt.. " " "
|
|||
|
83 @min.. " " "
|
|||
|
84 @max.. " " "
|
|||
|
85 @vlookup
|
|||
|
86 @npv
|
|||
|
87 @var
|
|||
|
88 @std
|
|||
|
89 @irr
|
|||
|
90 @hlookup
|
|||
|
|
|||
|
91 @dsum
|
|||
|
92 @davg
|
|||
|
93 @dcnt
|
|||
|
94 @dmin
|
|||
|
95 @dmax
|
|||
|
96 @dvar
|
|||
|
97 @dstd
|
|||
|
98 @index
|
|||
|
99 @cols
|
|||
|
100 @rows
|
|||
|
|
|||
|
101 @repeat
|
|||
|
102 @upper
|
|||
|
103 @lower
|
|||
|
104 @left
|
|||
|
105 @right
|
|||
|
106 @replace
|
|||
|
107 @proper
|
|||
|
108 @cell
|
|||
|
109 @trim
|
|||
|
110 @clean
|
|||
|
|
|||
|
111 @s
|
|||
|
112 @v
|
|||
|
113 @streq
|
|||
|
114 @call
|
|||
|
115 @indirect
|
|||
|
|
|||
|
|
|||
|
-- end of list --
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|