SYmbolic LinK (SYLK)

From Wikipedia, the free encyclopedia

The symbolic link file format is typically used to exchange data between applications, specifically spreadsheets. From within a spreadsheet data can be exported in the SYLK format. Comprised of only ASCII characters it is easily created and processed by other applications, such as databases.

Contents

[edit] Sample SYLK code

As an example, the following SYLK code in a text file with the .slk extension:

ID;P
C;Y1;X1;K"Row 1"
C;Y2;X1;K"Row 2"
C;Y3;X1;K"Total"
C;Y1;X2;K11
C;Y2;X2;K22
C;Y3;X2;K0;ER1C2+R2C2
E

would be displayed like this when read by an appropriate spreadsheet:

Row 1 11
Row 2 22
Total 33

[edit] Sample SYLK code (for numeric formatting)

The formatting of 2 decimal digits is applied to Column 2 using

F;P2;C2


where P0 is for General, P1 is for no decimal, P2 is for 2 digits, P3 has leading $ sign with 2 decimal points as defined below.

ID;P
P;PGeneral
P;P_(* #,##0_);;_(* \-#,##0_);;_(* "-"_);;_(@_)
P;P_(* #,##0.00_);;_(* \(#,##0.00\);;_(* "-"??_);;_(@_)
P;P_("$"* #,##0.00_);;_("$"* \(#,##0.00\);;_("$"* "-"??_);;_(@_)
C;Y1;X1;K"Row 1"
C;Y2;X1;K"Row 2"
C;Y3;X1;K"Total"
C;Y1;X2;K11
C;Y2;X2;K22
C;Y3;X2;K0;ER1C2+R2C2
F;P2;C2
E

would be displayed like this when read by an appropriate spreadsheet:

Row 1 11.00
Row 2 22.00
Total 33.00

[edit] Sample SYLK code (for column width)

 F;W< n1 > [S] < n2 > [S] < n3 > defines the widths of a group of columns:
[S] is one space
< n1 > is the first column
< n2 > is the last column
< n3 > is the width of columns in number of characters<BR>

For example : Adding these SYLK codes will adjust the column width of column 1 and 2 to 20 and 30 respectively.

F;W1 1 20
F;W2 2 30

[edit] Sample SYLK code (cell formatting properties)

 ;F < cl > < n > < c2 >
< cl > is one of the following 1-character formatting codes:
D default
C continuous cross-cell display
E scientific exponentiation
F fixed decimal point
G general format
$ leading$and2decimal points
*  bar graph, one asterisk per unit (5 would be *****)
< n > is the number of digits.
< c2 > is one of the following 1-character alignment codes:
D default
C center
G general(textleft, numbersright) 
L left justify
R right justify

For Example : The following SYLK code demonstrates the cell formatting properties

 ID;P
 P;PGeneral
 C;Y1;X1;K"Row 1 Left Justify"
 F;P0;FG0L
 C;Y2;X1;K"Row 2 Right Justify"
 F;P0;FG0R
 C;Y3;X1;K"Total at Center"
 F;P0;FG0C
 C;Y1;X2;K11
 C;Y2;X2;K22
 C;Y3;X2;K0;ER1C2+R2C2
 F;Y1;X2;FF2L
 F;Y2;X2;FF2R
 F;Y3;X2;F$2C
 F;W1 2 25
 E

[edit] SYLK Syntax

SYLK_file ::=
        Record +

Record ::=
        RecordType Field* newline

ID record:
Use:
        A header to identify spreadsheet type and creator.
        Must be first record in the file.
Record type:
        ID
Mandatory fields:
        ;P program
                -- file creator
                -- possible creators include:
                -- MP (Multiplan)
                -- XL (Excel)
Possible fields:
        ;N
                -- If present, file uses ;N style cell protection
                -- If absent, file uses ;P style cell protection
        ;E
                -- If present, NE records are redundant
                -- If absent, NE records are not redundant

B record
Use:
        Tells number of rows and columns in the spreadsheet.
        Recommended that it come before C and F records
Record type:
        B
Mandatory fields:
        ;X columns
                -- tells maximum number of columns
        ;Y rows
                -- tells maximum number of rows

C record
Use:
        Cell contents
Record type:
        C
Mandatory fields:
        ;X column
                -- column position (one based)
        ;Y row
                -- row position (one based)
Possible fields:
        ;E expression
                -- expression for the cell
        ;K value
                -- value of the cell
        ;C column
                -- column reference
        ;R row
                -- row reference
        ;G
                -- defines shared value
        ;D
                -- defines shared expression
        ;S
                -- references shared value or shared expression
        ;N
                -- If present, the cell is not protected.
                -- If absent and ;N is present in the ID record, cell is protected.
        ;P
                -- If present, cell is protected.
                -- If absent and ;N is absent in the ID record, cell is not protected.
        ;H
                -- If present, cell is hidden.
                -- If absent, cell is not hidden.
        ;M expression
                -- matrix expression from (X,Y) to (C,R)
        ;I
                -- inside a matrix
Compatible fields:
        If ;G is present, ;E must be absent.
        If ;G is present, ;K must be present.
        If ;D is present, ;E must be present.
        If ;S is present, ;E, ;K, ;G, ;D, and ;M must be absent.
        If ;S is present, ;R and ;C must be present. (They define the row and column that the shared value/expression is copied from.)
        If ;N is present in the ID record, ;P must be absent.
        If ;N is absent from the ID record, ;N must be absent.
        If ;M is present, ;E must be absent.
        If ;I is present, ;K and ;E must be absent

P record
Use:
        Picture format
        If F records are present, precedes them.
Mandatory fields:
        ;P picture
                -- Excel style picture format

F record
Use:
        Format
        If P record(s) are present, follows them.
Possible fields:
        ;X column
                -- column (one based)
        ;Y row
                -- row (one based)
        ;C column
                -- column (one based)
        ;R row
                -- row (one based)
        ;F format
                -- Cell/row/column format
                -- The format of format is
                -- ch1 digits ch2
                -- ch1 is
                --      D       default
                --      C       currency
                --      E       exponent
                --      F       fixed
                --      G       general
                --      $       dollar
                --      *       graph
                --      %       percent
                -- digits is number of digits after decimal point
                -- ch2 is alignment
                --      D       default
                --      C       center
                --      G       standard
                --      L       left
                --      R       right
                --      -       ignored
                --      X       fill
        ;D format
                -- Default format.
                -- The format of format is
                -- ch1 digits ch2
                -- ch1 is
                --      C       currency
                --      E       exponent
                --      F       fixed
                --      G       general
                --      $       dollar
                --      *       graph
                --      %       percent
                -- digits is number of digits after decimal point
                -- ch2 is alignment
                --      C       center
                --      G       standard
                --      L       left
                --      R       right
                --      -       ignored
                --      X       fill
        ;E
                -- show formulas
        ;K
                -- show commas
        ;W col1 col2 width
                -- set column widths
        ;N fontid size
                -- font to use
        ;P index
                -- Excel picture
        ;S style
                -- style
                -- The following characters can be part of style
                --      I       italic
                --      D       bold
                --      T       gridline top
                --      L       gridline left
                --      B       gridline bottom
                --      R       gridline right
        ;H
                -- If present, don't show row/column headers
                -- If absent in the entire file, show row/column headers
        ;G
                -- If present, don't show default gridlines
                -- If absent in the entire file, show default gridlines
Compatible fields:
        At least one of ;X, ;Y, ;C, ;R, ;D, ;E, ;K, ;W, ;P, ;H, or ;G must be present.
        If ;X or ;Y is present, both ;X and ;Y must be present. (This sets cell format.)
        If ;X is present, ;R, ;C, ;E, ;K, ;W, ;N, ;H, ;G must be absent.
        If ;R is present, ;X, ;Y, ;C, ;E, ;K, ;W, ;N, ;H, ;G must be absent. (This sets default row format.)
        If ;C is present, ;X, ;Y, ;R, ;E, ;K, ;W, ;N, ;H, ;G must be absent. (This sets default column format.)
        If ;D is present, ;X, ;Y, ;R, ;C must be absent. (This sets default spreadsheet format.)
        If ;X, ;Y, ;R, ;C are present, ;P and/or ;F and/or ;S must be present.

O record
Use:
        Options
Possible fields:
        ;A iter delta
                -- If present, allow value iteration
                -- If absent, circular references are not allowed.
                -- iter (maximum number of iterations)
                -- delta (step test. If smaller, then finished.)
        ;C
                -- completion test at nearest preceding C record
        ;P
                -- sheet is protected
        ;L
                -- use A1 mode references
                -- Even if ;L is given R1C1 references are used in SYLK file expressions.
        ;M
                -- If present, use manual recalculation.
                -- If absent, use automatic recalculation.
        ;E
                -- Macro sheet.
                -- This should appear before the first appearance of a ;G or ;F field in a NN record.
                -- This should appear before the first C record which uses a macro-only function.

NU record
Use:
        file name substitution
        If NE record(s) are present, must precede them.
Mandatory fields:
        ;L filename
                -- old filename
        ;F filename
                -- new filename

NE record
Use:
        external link
Mandatory fields:
        ;E expression
                -- Target area on spreadsheet
        ;F filename
                -- Source file
        ;S expression
                -- Source area on external sheet

NN record
Use:
        Defines names
        More efficient if NN appears before name use.
Mandatory fields:
        ;N name
                -- name
        ;E expression
                -- expression describing value of name
Possible fields:
        ;G ch1 ch2
                -- runable name (macro) with command key alias
        ;K ch1 ch2
                -- ordinary name with unused comman aliases
        ;F
                -- usable as a function
Compatible fields:
        If ;G is present, ;K must be absent.

W record
Use:
        Window definitions

NL record
Use:
        Chart external link

E record
Use:
        End of file.
        Must be last record.

[edit] External links

Detailed examples can also be found at here.

Syntax for SYLK can be found at

and at

and Wotsit