home *** CD-ROM | disk | FTP | other *** search
- 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