339 lines
14 KiB
Plaintext
339 lines
14 KiB
Plaintext
WORKSHEET FILE FORMAT
|
|
FROM LOTUS
|
|
|
|
INTRODUCTION AND QUICK REFERENCE
|
|
|
|
Copyright(c) 1984, Lotus Development Corporation
|
|
161 First Street
|
|
Cambridge, Massachusetts 02142
|
|
(617) 492-7171
|
|
Electronic Edition, December, 1984
|
|
All Rights Reserved
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PREFACE
|
|
|
|
Lotus Development Corporation's 1-2-3(TM) and Symphony(TM) perform user
|
|
selected operations upon a data matrix that is termed a "worksheet".
|
|
|
|
Worksheet files are such matrices stored on disk.
|
|
|
|
A worksheet file is an unbroken sequence of binary coded records defining a
|
|
single worksheet.
|
|
|
|
Both 1-2-3 and Symphony accept externally created data files if the files
|
|
are in the worksheet file format. Other programs can decode and process
|
|
worksheet files created by 1-2-3 or Symphony.
|
|
|
|
The following document provides information required to create or access a
|
|
worksheet file by describing the records used to create a worksheet file.
|
|
It is assumed that the reader is familiar with Lotus products and has ready
|
|
access to 1-2-3 or Symphony documentation.
|
|
|
|
Note that the worksheet files for 1-2-3 and Symphony are similar, but not
|
|
necessarily interchangeable. 1-2-3 and Symphony share some record types,
|
|
but also have record types unique to that product. Symphony can read 1-2-3
|
|
records, but 1-2-3 cannot read Symphony records.
|
|
|
|
The information contained in this document has been released into the
|
|
public domain and is not considered to be confidential or proprietary
|
|
although still the copyright and property of Lotus Development Corporation.
|
|
All efforts have been made to ensure that this information is clear and
|
|
useful since Lotus will not be providing customer assistance with this
|
|
booklet. Lotus will, however, incorporate any necessary corrections if
|
|
they are reported in writing to:
|
|
|
|
Lotus Development Corporation
|
|
Worksheet File Format
|
|
161 First Street
|
|
Cambridge, MA 02142
|
|
|
|
|
|
WORKSHEET FILE FORMAT
|
|
|
|
Worksheet files are organized as an unbroken sequence of variable length
|
|
binary records. Each record consists of a 4-byte header followed by the
|
|
record body. The header defines the record's type and length, as the
|
|
example below shows.
|
|
|
|
The header's composition is as follows:
|
|
|
|
|
|
|
|
Byte Number Byte Description
|
|
0,1 Record type code
|
|
2,3 Record body length (bytes)
|
|
|
|
|
|
Example: Record Header
|
|
|
|
Record Header
|
|
|
|
Record Record
|
|
Type Length
|
|
|
|
Byte Number 0 1 2 3
|
|
Hex Code 1C 00 20 00
|
|
Decimal Equivalent 28 32
|
|
|
|
|
|
The record body can be of many different types; most have predetermined
|
|
length, but some vary in length.
|
|
|
|
The record type code is 28.
|
|
|
|
In a hex dump of the file, the record type appears as 1C 00h, noting that
|
|
the 8086/88 stores the most significant byte of word in the higher memory
|
|
address.
|
|
|
|
The record length is 32 bytes.
|
|
In a hex dump of the file, the record length appears as 20 00h.
|
|
|
|
|
|
Record types with Column/Row Coordinates
|
|
|
|
Some record types contain column/row coordinates to identify a cell, or one
|
|
of the two points that define a range. Numbering starts at zero in the
|
|
upper left corner of the worksheet.
|
|
For example:
|
|
|
|
Cell A1 = column 0, row 0
|
|
|
|
|
|
|
|
|
|
|
|
SUMMARY OF RECORD TYPES
|
|
|
|
This section describes the different record types found in 1-2-3 and
|
|
Symphony.
|
|
|
|
There are to Quick Reference tables ordered by Opcode and by Product,
|
|
followed by a detailed reference section ordered by Opcode. In the
|
|
reference section, there are examples for the more commonly used records.
|
|
|
|
It is assumed that the reader is familiar with 1-2-3 or Symphony and has
|
|
access to Lotus' documentation.
|
|
|
|
Quick Reference by Opcode
|
|
|
|
Type Code (hex) Length (bytes) Description
|
|
|
|
BOF 0 2 Beginning of file
|
|
EOF 1 0 End of file
|
|
CALCMODE 2 1 Calculation mode
|
|
CALCORDER 3 1 Calculation order
|
|
SPLIT 4 1 Split window type
|
|
SYNC 5 1 Split window sync
|
|
RANGE 6 8 Active worksheet range
|
|
WINDOW1 7 31 Window 1 record
|
|
COLW1 8 3 Column width,
|
|
window 1
|
|
WINTWO 9 31 Window 2 record
|
|
COLW2 A 3 Column width,
|
|
window 2
|
|
NAME B 24 Named range
|
|
BLANK C 5 Blank cell
|
|
INTEGER D 7 Integer number cell
|
|
NUMBER E 13 Floating point number
|
|
LABEL F variable Label cell
|
|
FORMULA 10 variable Formula cell
|
|
TABLE 18 25 Data table range
|
|
ORANGE 19 25 Query range
|
|
PRANGE 1A 8 Print range
|
|
SRANGE 1B 8 Sort range
|
|
FRANGE 1C 8 Fill range
|
|
KRANGE1 1D 9 Primary sort key range
|
|
HRANGE 20 16 Distribution range
|
|
KRANGE2 23 9 Secondary sort key
|
|
range
|
|
PROTEC 24 1 Global protection
|
|
FOOTER 25 242 Print footer
|
|
HEADER 26 242 Print header
|
|
SETUP 27 40 Print setup
|
|
MARGINS 28 10 Print margins code
|
|
|
|
|
|
|
|
Quick Reference by Opcode (continued)
|
|
|
|
Type code (hex) Length (bytes) Description
|
|
|
|
LABELFMT 29 1 Label alignment
|
|
TITLES 2A 16 Print borders
|
|
GRAPH 2D 437 Current graph settings
|
|
NGRAPH 2E 453 Named graph settings
|
|
CALCCOUNT 2F 1 Iteration count
|
|
UNFORMATTED 30 1 Formatted/unformatted
|
|
print
|
|
CURSORW12 31 1 Cursor location
|
|
WINDOW 32 144 Symphony window
|
|
settings
|
|
STRING 33 variable Value of string
|
|
formula
|
|
PASSWORD 37 4 File lockout (CHKSUM)
|
|
LOCKED 38 1 Lock flag
|
|
QUERY 3C 127 Symphony query
|
|
settings
|
|
QUERYNAME 3D 16 Query name
|
|
PRINT 3E 679 Symphony print record
|
|
PRINTNAME 3F 16 Print record name
|
|
GRAPH2 40 499 Symphony graph
|
|
record
|
|
GRAPHNAME 41 16 Graph record name
|
|
ZOOM 42 9 Orig coordinates
|
|
expanded window
|
|
SYMSPLIT 43 2 Nos. of split windows
|
|
NSROWS 44 2 Nos. of screen rows
|
|
NSCOLS 45 2 Nos. of screen columns
|
|
RULER 46 25 Named ruler range
|
|
NNAME 47 25 Named sheet range
|
|
ACOMM 48 65 Autoload.comm code
|
|
AMACRO 49 8 Autoexecute macro
|
|
address
|
|
PARSE 4A 16 Query parse
|
|
information
|
|
|
|
|
|
|
|
|
|
Quick Reference by Product: 1-2-3 only
|
|
|
|
Type Code (hex) Length (bytes) Description
|
|
|
|
SPLIT 4 1 Split window type
|
|
SYNC 5 1 Split window sync
|
|
WINDOW 1 7 31 Window 1 record
|
|
WINTWO 9 31 Window 2 record
|
|
COLW2 A 3 Column width,
|
|
window 2
|
|
NAME B 24 Named range
|
|
QRANGE 19 25 Query range
|
|
PRANGE 1A 8 Print range
|
|
SRANGE 1B 8 Sort range
|
|
KRANGE1 1D 9 Primary sort key range
|
|
KRANGE2 23 9 Secondary sort key
|
|
range
|
|
FOOTER 25 242 Print footer
|
|
HEADER 26 242 Print header
|
|
SETUP 27 40 Print setup
|
|
MARGINS 28 10 Print margins code
|
|
TITLES 2A 16 Print borders
|
|
GRAPH 2D 437 Current graph settings
|
|
NGRAPH 2E 453 Named graph settings
|
|
|
|
|
|
|
|
|
|
Quick Reference by Product: 1-2-3 and Symphony
|
|
|
|
Type Code (hex) Length (bytes) Description
|
|
|
|
BOF 0 2 Beginning of file
|
|
EOF 1 0 End of file
|
|
CALCMODE 2 1 Calculation mode
|
|
CALCORDER 3 1 Calculation order
|
|
RANGE 6 8 Active worksheet range
|
|
COLW1 8 3 Column width
|
|
BLANK C 5 Blank cell
|
|
INTEGER D 7 Integer number cell
|
|
NUMBER E 13 Floating point number
|
|
LABEL F variable Label cell
|
|
FORMULA 10 variable Formula cell
|
|
TABLE 18 25 Data table range
|
|
FRANGE 1C 8 Fill range
|
|
HRANGE 20 16 Distribution range
|
|
PROTEC 24 1 Global protection
|
|
LABELFMT 29 1 Label alignment
|
|
CALCCOUNT 2F 1 Iteration count
|
|
UNFORMATTED 30 1 Formatted/unformatted
|
|
print
|
|
CURSORW12 31 1 Cursor location
|
|
|
|
|
|
|
|
|
|
Quick Reference by Product: Symphony only
|
|
|
|
Type Code (hex) Length (bytes) Description
|
|
|
|
WINDOW 32 144 Symphony window
|
|
settings
|
|
STRING 33 variable Value of string
|
|
formula
|
|
PASSWORD 37 4 File lockout (CHKSUM)
|
|
LOCKED 38 1 Lock flag
|
|
QUERY 3C 127 Symphony query
|
|
settings
|
|
QUERYNAME 3D 16 Query name
|
|
PRINT 3E 679 Symphony print record
|
|
PRINTNAME 3F 16 Print record name
|
|
GRAPH2 40 499 Symphony graph
|
|
record
|
|
GRAPHNAME 41 16 Graph rocord name
|
|
ZOOM 42 9 Orig coordinates
|
|
expanded window
|
|
SYMSPLIT 43 2 Nos. of split windows
|
|
NSROWS 44 2 Nos. of screen rows
|
|
NSCOLS 45 2 Nos. of screen columns
|
|
RULER 46 25 Named ruler range
|
|
NNAME 47 25 Named sheet range
|
|
ACOMM 48 65 Autoload. comm code
|
|
AMACRO 49 8 Autoexecute macro
|
|
address
|
|
PARSE 4A 16 Query parse
|
|
information
|