












                            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

