Dec 282017
 
Information on how Lotus and Symphony store data.
File WSFF.ZIP from The Programmer’s Corner in
Category Tutorials + Patches
Information on how Lotus and Symphony store data.
File Name File Size Zip Size Zip Type
DECODE.EXE 34944 16423 deflated
WSFF1.TXT 14464 3193 deflated
WSFF2.TXT 79872 11812 deflated
WSFF3.TXT 3712 830 deflated
WSFF4.TXT 19968 5248 deflated

Download File WSFF.ZIP Here

Contents of the WSFF1.TXT file


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


 December 28, 2017  Add comments

Leave a Reply