【办公-Excel】SKLY格式详解1.0.pdf

Symbolic Link

由于微软没有发布SYLK规范,本文由我个人经验所得,如有错误的地方请联系我,感谢你们对我的支持-少莫千华(qq370763160)

特此声明。

目录

Symbolic Link. 1

1       简介... 2

2       用途... 2

3       SYLK 语法... 3

3.1        SLK文件说明... 3

3.2        转义与字符定义... 3

3.3        多重格式指定... 5

3.4        记录详解... 5

3.4.1    ID 记录... 5

3.4.2    B 记录... 6

3.4.3    C 记录... 6

3.4.4    P 记录... 7

3.4.5    F 记录... 12

3.4.6    O 记录... 16

3.4.7    NU 记录... 17

3.4.8    NE 记录... 17

3.4.9    NN 记录... 18

3.4.10    W 记录... 18

3.4.11    NL 记录... 18

3.4.12    E 记录... 18

3.5        附言... 19

4       附件表... 19

4.1        L颜色表... 19

4.2        月份简称表... 21

5       附件示例... 21

5.1        初始化单元格式... 22

5.2        设置内容... 24

5.3        设置字体颜色... 25

5.4        数字格式... 29

1      简介

SLK (Symbolic Link, 符号链接, 也可简写为"SYLK"),是一种电子表格数据库格式。

Symbolic Link (SYLK) 是微软的文件格式,一般用于应用程序之间的数据交互,是一种特殊的电子表格。SYLK文件一般有一个.slk 的后缀。只能以ANSI 字符格式显示, 其他应用程序可以很容易的创建或处理它,如数据库。

微软没有发布SYLK规范。该格式支持: Multiplan(美国Microsoft公司开发的一种电子表格程序)、Microsoft Excel(微软公司的办公软件Microsoft office的组件),、Microsoft Works(微软的一种家用综合软件)、 OpenOffice.org(一套跨平台的办公室软件套件) 和 Gnumeric(一款免费开源的电子表格处理软件)。

注意:即使应用程序创建SYLK文件的时候支持Unicode (如 Microsoft Excel), 该在当前系统下SYLK 文件也是用ANSI 代码页编码,而不是Unicode。如果应用程序包含可以显示的Unicode字符,但是当前系统代码页中没有codepoint,在 SYLK 文件中将以被替换成问号('?')。

还要注意的是在SYLK 文件中如果一个字符串包含一个分号(;),则需要另外再加一个分号,因此字符串将会这样显示"WIDGET#04;;AXC1254";MS Excel 导入的时候只获取第一个分号,数据元素将会这样显示"WIDGET#04;AXC1254"。由此可见,分号是一个转义字符。

在SYLK文件中经常遇到的杂乱事件,当一个文件以逗分隔值(CSV)的格式保存且第一字段名是不带引号的“ID”,此时这个文件的前两个字符与SYLK文件格式的前两个字符是匹配的。MicrosoftExcel (一直到Office 2013)将发出误导性有关的文件的格式错误信息,如“您尝试打开的文件smqh.csv的格式与文件扩展名指定的格式不一致,打开文件前请验证文件没有损坏且来源可信,是否立即打开该文件?”。

注:普通剪贴板的CF_SYLK格式,使用的就是ASCII编码的Symbolic Link,使用GetClipboardData(CF_SYLK)获得的数据用char*强制转换即可。

2      用途

WarCraftIIIMPQ包裹中有各种各样的slk文件,用来记录单位、技能、魔法效果、地形、天气、环境、声音、模型、贴图等等各种各样的数据。

修改slk可以做到很多连地图编辑器也难以做到的事情,而你所需要做的仅仅是把它们导出来,放到游戏文件夹下与mpq中相同的路径下,然后随心所欲的编辑。

slk可以用Excel等表格软件轻松的编辑,当然就算是用记事本编辑也不算太麻烦。

地图slk优化,是指把地图中的w3uw3a,等等文件转化成slk。这样可以使地图载入速度大大加快,但是会增大地图体积。

slk优化也常常被称作"slk加密",事实上slk化只是让一些新手不容易修改地图数据而已,本身算不上加密。

3      SYLK语法

3.1             SLK文件说明

顺序

格式

含义

第一行

ID;

文件头,包含文件的创建者(使用啥软件创建的),Excel = PWXL

文件是否是被保护的

紧随第二行

P;P

单元格格式-数字、文本

紧随“P;P…”

P;F

P;E

字体样式(字体、颜色、字号)

自定义

B;

告知电子表格边界

自定义

F;

设置格式

自定义

C;

设置内容

自定义

O;

选项

最后一行

E

结束符号

3.2             转义与字符定义

SYLK代码

Excel语法

Excel数据显示

;;

;

多重格式分隔符

第一个格式一般指的是正数,第二个格式一般默认指的是负数

\-

-

负号或连接符

\‘Space’

‘Space’

_-

*

*

任意一个字符串

?

?

任意一个字符

_?

1个字符缩进

@

@

单元数据

#,##

#,##

使用千位分隔符(,)

[Red]

[红色]

[Blue]

[蓝色]

[Green]

[绿色]

[Black]

[黑色]

[White]

[白色]

[Yellow]

[黄色]

%

%

百分比

?/?

?/?

分数(1位/1位)

??/??

??/??

分数(2位/2位)

yyyy

yyyy

年(四位)

yy

yy

年(后两位)

m

m

d

d

hh

hh

小时

mm

mm

分钟

ss

ss

秒钟

AM/PM

AM/PM

上午或下午

[h]

[h]

参考日期时间与当前日期时间之差

_)

_)

缩进1

\(

(

左括号

\)

)

右括号

\$

$

货币符号

"年"

"年"

"月"

"月"

"日"

"日"

"时"

"时"

"分"

"分"

"秒"

"秒"

上午/下午

上午/下午

上午/下午

_

_

缩进一个字符

"自定义1"

"自定义1"

数值:大于等于零的显示为自定义1,小于零的不显示。

"自定义1";;"自定义1"

"自定义1";"自定义1"

数值:全部显示为自定义1

"自定义1";;"自定义1";;"自定义1"

"自定义1";"自定义1";"自定义1"

数值:全部显示为自定义1

"自定义1";;"自定义1";;"自定义2"

"自定义1";"自定义1";"自定义2"

数值:等于零的显示为自定义2,不等于零的显示为自定义1

"自定义1";;"自定义2"

"自定义1";"自定义2"

数值:小于零的显示为自定义2,大于等于零的显示为自定义1

"自定义1";;"自定义2";;"自定义1"

"自定义1";"自定义2";"自定义1"

数值:小于零的显示为自定义2,大于等于零的显示为自定义1

"自定义1";;"自定义2";;"自定义2"

"自定义1";"自定义2";"自定义2"

数值:小于零等于的显示为自定义2,大于零的显示为自定义1

[$自定义-1]

[$自定义-1]

左起第一个字符添加自定义

[$自定义-2]

[$自定义-2]

左起第一个字符添加为自定义第二个字符添加为空格

3.3             多重格式指定

Sylk文件常见的单元格式形式如下:

P;P格式1;;格式2;;格式3;;格式4

修改格式的顺序是:

1、  先将选择的区域所有内容设置成格式1

2、  将小于的设置成格式2

3、  将等于0 的设置成格式3

4、  最后将文本设置成格式4

这种格式都用于显示True False、Yes No、On Off、对错、负数警告等等。

3.4             记录详解

3.4.1      ID 记录

用途:必须是文件的第一个记录。文件头标识了电子表格的类型和创建者。

记录类型:ID

3.4.1.1 必填字段

P 应用程序

文件创建者

可能的创作者包括:MP (Multiplan)XL (Microsoft Excel)

示例:PWXL (Microsoft Excel)

3.4.1.2 可选字段

N

如果存在,文件使用;N风格单元保护

如果不存在,文件使用;P风格单元保护

E

如果存在,NE记录是多余的

如果不存在,NE记录不是多余的

3.4.2      B 记录

使用:告知电子表格的行数和列数(有效数据)。建议记录B之前先记录CF

3.4.2.1 必填字段

X 列数

告知最大列数

Y 行数

告知最大行数

DYS XS YE XE

告知预处理区域 起始坐标 (XS YS)终止坐标(XE,YE),编号从0开始。

示例:有效区域 (行1列1)到(行3列4)

B;Y3;X4;D0 0 2 3

3.4.3      C 记录

使用: 单元格内容

记录类型:C

3.4.3.1 必填字段

X 列

列位置

Y 行

行位置

3.4.3.2 可选字段

E 表达式

一个单元的表达式

K 值

一个单元的值

C 列

列引用

R 行

行引用

G

定义共享值

D

定义共享表达式

S

引用共享值或共享表达式

N

如果存在,单元格是没有保护的。.

如果不存在且;NID记录记录里面存在,单元格是被保护的.

P

如果存在,表格单元是被保护的。

如果不存在且;NID记录里面不存在,表格单元是不被保护的.

H

如果存在表格是单元是隐藏的,

如果不存在表格单元是显示的。

M 表达式

矩形区域表达式从(X,Y)(C,R)

I

矩形区域内

3.4.3.3 兼容字段

如果;G存在,;E必须不存在。

如果;G存在,;K必须存在

如果;D存在,;E必须存在.

如果;S存在,;E、K、G、DM必须不存在.

如果;S存在,;R和C必须存在。(他们定义了共享值/表达式的行和列)。

如果;NID记录里面存在,;P必须不存在.

如果;NID记录里面不存在,;N必须不存在

如果;M存在,;E必须不存在。

如果;I存在,;K ;E必须不存在。

3.4.4      P 记录

用途:单元格式

如果 F 记录存在,先于P记录。

P

数据格式(文本、数字、货币、日期、时间等等)

F

全部内容的缺省字体,字体格式 (前四个F开头,后面的全部是E开头)

示例:P;F宋体;M360;SB;L63

E

全部内容的缺省字体,字体格式 (前四个F开头,后面的全部是E开头)

示例:P;E宋体;M360;SB;L63

M

字号(Sylk代码中的字号) =20*( FontSize_Excel界面)

L

L为颜色,见L颜色表

3.4.4.1 必填字段

P格式

Excel的单元格样式格式规范

3.4.4.2 P格式示例讲解

P;PGeneral

通用格式

整数部分超过11位,则用科学计数法标识;整数部分未超高11位,长度超过11个字符,则在保证显示11个字符的情况下,保留相应的小数位数。

P;P0

只显示整数部分,小数点后一位使用四舍五入。

P;P0.00

表示保留两位小数,第三位小数使用四舍五入。

P;P#,##0

每三位用逗号隔开

P;P#,##0.00

整数部分每三位用逗号(,)隔开并保留2位小数

P;P#,##0;;\-#,##0

每三位用逗号(,)隔开

P;P#,##0;;[Red]\-#,##0

每三位用逗号隔开,正数用通用颜色的文本,负数用红色文本。

P;P#,##0.00;;\-#,##0.00

整数部分每三位用逗号(,)隔开并保留2位小数

P;P#,##0.00;;[Red]\-#,##0.00

整数部分每三位用逗号(,)隔开并保留2位小数,正数用通用颜色的文本,负数用红色文本。

P;P"$"#,##0;;\-"$"#,##0

整数部分每三位用逗号(,)隔开,正数将$符号放在最前,负数将$符号放在负号后面。

P;P"$"#,##0;;[Red]\-"$"#,##0

整数部分每三位用逗号(,)隔开。

正数将$符号放在最前,负数将$符号放在负号(-)后面。

正数用通用颜色的文本,负数用红色文本。

P;P"$"#,##0.00;;\-"$"#,##0.00

整数部分每三位用逗号(,)隔开。

正数将$符号放在最前,负数将$符号放在负号后面。

保留2位小数。

P;P"$"#,##0.00;;[Red]\-"$"#,##0.00

整数部分每三位用逗号隔开。

正数将$符号放在最前,负数将$符号放在负号(-)后面。

正数用通用颜色的文本,负数用红色文本。

保留2位小数。

P;P0%

数值大小乘以100,结果值的小数点后第一位四舍五入。

数值最后加上百分号号(%)。

只显示整数部分。

P;P0.00%

数值大小乘以100,结果值的小数点后第三位四舍五入。

数值最后加上百分号号(%)。

保留两位小数。

P;P0.00E+00

使用科学计数法显示(只显示一位整数,)

保留两位小数

注:Excel最大整数位308位整数

例:9.99E+307

P;P##0.0E+0

使用科学计数法显示,保证整数位的个数小于等于三,也就是说不出现逗号的情况

保留1位小数

注:Excel最大整数位308位整数

例:99.0E+306

P;P#\ ?/?

小数部分以分数形式显示

分数的分子和分母都只能是个位数。例如:

[0. 1000001, 0.1176470] 1/9

[0.1176471, 0.1333333] 1/8

[0.1333334, 0.1538461] 1/7

[0.1538462, 0.1818181] 1/6

[0.1818182, 0.2142857] 1/5

[0.2142858, 0.2307692] 2/9

[0.2307693, 0.2727272] 1/4

[0.2727273, 0.3000000] 2/7

[0.2727273, 0.3000000] 2/7

[0.3000001, 0.3636363] 1/3

[0.3636364, 0.3846153] 3/8

[0.3846154, 0.4166666] 2/5

[0.4166667, 0.4374999] 3/7

[0.4375000, 0.4545454] 4/9

[0.4545455, 0.5454545] 1/2

[0. 5454546, 0. 5625000] 5/9

[0. 5625001, 0. 5833333] 4/7

[0. 5833334, 0. 6153846] 3/5

[0. 6153847, 0. 6363636] 5/8

[0. 6363637, 0. 7000000] 2/3

[0. 7000001, 0. 7272727] 5/7

[0. 7272728, 0. 7692307] 3/4

[0. 7692308, 0. 7857142] 7/9

[0. 7857143, 0. 8181818] 4/5

[0. 8181819, 0. 8461538] 5/6

[0. 8461539, 0. 8666666] 6/7

[0. 8666667, 0. 8823529] 7/8

[0. 8823530, 0. 9000000] 8/9

[0. 9000001, 0. 9999999] 1

P;P#\ ??/??

小数部分以分数形式显示

分数的分子和分母都100以内的数。例如:

0.99=98/99

0.5=1/2

P;P#??/??

以分数形式显示

其中:分子= 整数部分×分母+小数部分的分子

P;Pyyyy/m/d

以斜杆的形式显示“年月日”,例:

2016/8/10

P;Pd/mmm/yy

以斜杆的形式显示“日月年”。

月以每个月英文单词的前3个字母缩写(见月份简称表)表示,年只显示个位和十位。

P;Pmmm/yy

以斜杆的形式显示“日月”。

月以每个月英文单词的前3个字母缩写表示,年只显示个位和十位。

P;Phh:mm\ AM/PM

以冒号的形式显示“时分 时段”,长度为12小时。

时段:AM代表上午(前12小时)PM代表下午(后12小时)。

P;Phh:mm:ss\ AM/PM

以冒号的形式显示“时分秒 时段”,长度为12小时。

时段:AM代表上午(前12小时)PM代表下午(后12小时)。

P;Phh:mm

以冒号的形式显示“时分”,长度为24小时。

P;Phh:mm:ss

以冒号的形式显示“时分秒”,长度为24小时。

P;Pyyyy/m/d\ hh:mm

显示形式“年月日 时分”。时间长度为24小时。

P;Pmm:ss

显示形式“分秒”。

P;Pmm:ss.0

显示形式“分秒”。

秒钟保留一位小数,小数点后第二位四舍五入。

P;P@

以文本格式显示

P;P[h]:mm:ss

以冒号的形式显示“时分秒”,长度为24小时。

时间是从“1900年1月1日 0时0分0秒”起到当前“日期-时间”的总时数。

P;P_-"$"* #,##0_-;;\-"$"* #,##0_-;;_-"$"* "-"_-;;_-@_-

正数显示: $                3,456,120

负数显示:-$                3,456,120

零显示:   $                       -

文本左对齐显示: 测试

文本右对齐显示:测试

P;P_-* #,##0_-;;\-* #,##0_-;;_-* "-"_-;;_-@_-

正数显示:                 3,456,120

负数显示:-                3,456,120

零显示:                          -

文本左对齐显示: 测试

文本右对齐显示:测试

P;P_-"$"* #,##0.00_-;;\-"$"* #,##0.00_-;;_-"$"* "-"??_-;;_-@_-

正数显示: $                3,456,120.12

负数显示:-$                3,456,120.12

零显示:   $                       -

文本左对齐显示: 测试

文本右对齐显示:测试

P;P_-* #,##0.00_-;;\-* #,##0.00_-;;_-* "-"??_-;;_-@_-

正数显示:                 3,456,120.12

负数显示:-                3,456,120.12

零显示:                          -

文本左对齐显示: 测试

文本右对齐显示:测试

P;P\$#,##0_);;\(\$#,##0\)

正数和零显示:$3,456,120

负数显示:($3,456,120)

P;P\$#,##0_);;[Red]\(\$#,##0\)

正数和零显示:$3,456,120

负数显示:($3,456,120)

P;P\$#,##0.00_);;\(\$#,##0.00\)

正数和零显示:$3,456,120.12

负数显示:($3,456,120.12)

P;P\$#,##0.00_);;[Red]\(\$#,##0.00\)

正数和零显示:$3,456,120.12

负数显示:($3,456,120.12)

P;Pm/d/yy

日期显示:8/13/16

P;Pyyyy"年"m"月"d"日"

日期显示:2016年8月13日

P;Phh"时"mm"分"

时间显示:16时06分

P;Phh"时"mm"分"ss"秒"

时间显示:16时06分01秒

P;Pyyyy"年"m"月"

日期显示:2016年8月

P;Pm"月"d"日"

日期显示:8月13日

P;P上午/下午hh"时"mm"分"

时间显示:下午04时06分

P;P上午/下午hh"时"mm"分"ss"秒"

时间显示:下午04时06分01秒

P;P"$"#,##0;;"$"\-#,##0

正数和零显示:$3,456,120

负数显示:$-3,456,120

P;P"$"#,##0;;[Red]"$"\-#,##0

正数和零显示:$3,456,120

负数显示:$-3,456,120

P;P"$"#,##0.00;;"$"\-#,##0.00

正数和零显示:$3,456,120.12

负数显示:$-3,456,120.12

P;P"$"#,##0.00;;[Red]"$"\-#,##0.00

正数和零显示:$3,456,120.12

负数显示:$-3,456,120.12

P;P_ "$"* #,##0_ ;;_ "$"* \-#,##0_ ;;_ "$"* "-"_ ;;_ @_

正数显示: $                3,456,120

负数显示: $               -3,456,120

零显示:   $                       -

文本左对齐显示: 测试

文本右对齐显示:测试

P;P_ * #,##0_ ;;_ * \-#,##0_ ;;_ * "-"_ ;;_ @_

正数显示:3,456,120

负数显示: -3,456,120

零显示:  -

文本左对齐显示: 测试

文本右对齐显示:测试

P;P_ "$"* #,##0.00_ ;;_ "$"* \-#,##0.00_ ;;_ "$"* "-"??_ ;;_ @_

正数显示: $                3,456,120.12

负数显示: $               -3,456,120.12

零显示:   $                        -  

文本左对齐显示: 测试

文本右对齐显示:测试

P;P_ * #,##0.00_ ;;_ * \-#,##0.00_ ;;_ * "-"??_ ;;_ @_

正数:3,456,120.12

负数显示:-3,456,120.12

零显示:-  

文本左对齐显示: 测试

文本右对齐显示:测试

P;P"Yes";;"Yes";;"No"

正数和负数显示:Yes

零显示:No

P;P"True";;"True";;"False"

正数和负数显示:True

零显示:False

P;P"On";;"On";;"Off"

正数和负数显示:On

零显示:Off

P;P[$€-2]\ #,##0.00_);;[Red]\([$€-2]\ #,##0.00\)

正数显示:€ 3,456,120.12

负数显示:-€ 3,456,120.12

P;E宋体;M220;SB;L64

字体宋体,字号11加粗,颜色灰色-80%

3.4.5      F 记录

用途:设置单元格格式

3.4.5.1 可选字段

X

Y

C

R

F 格式

“单元/行/列”格式

D 格式

默认

E

显示公式

K

显示逗号

W 起始列 终止列 字符数

设置列宽 col1开始列号 col2结束列号,col2必须大于等于col1,示例:

F;W1 1 14

F;W2 2 24

F;W4 10 1

F;W6 12 5

N 字体编号 大小

字体使用

P 编号

序号从0开始,指向“P;P*”所代表的内容。

Excel 单元格式,P的记录号 (例:P0的意思是第一个P记录, 第一个记录常常声明为“P;PGeneral”。

S 风格

风格

H

如果存在不显示行/列的表头。如果不存在,则显示行/列表头

G

如果存在,不显示默认网格线。

如果不存在,显示默认网格线。

SM 编号

序号从0开始,指向“P;E*”或“P;F*”所代表的内容(字体、字号、文本颜色)。

例:设置第三行第二列的字体格式为字体-黑体,字号18颜色为白色

….

P;E黑体;M260

P;E黑体;M960;L5

P;E黑体;M360;L2

P;E黑体;M960

F;FG0C;SM2;Y3;X2

….

L 颜色编号

设置网格颜色,见L颜色表。

示例:

F;L2

M 字号

可以用来设置每一行的高度:

例:设置第二行的行高为1个字符(默认一个字符的字号为13)的高度:

F;M260;R2

(M字号 size = 13*20)R = Rows

3.4.5.1.1      F 格式

F的格式是:

F ch1 digits ch2

ch1

数字格式

D

默认

C

货币

E

指数

F

固定小数

G

通用格式

$

美元

*

图表

%

百分比

digits

小数点后的位数

ch2

对齐方式

D

默认

C

居中

G

标准

L

靠左

R

靠右

-

忽略

X

填充

3.4.5.1.2      D 格式

D的格式

ch1 digits ch2 nWidth

ch1

数字格式

C

货币

E

指数

F

固定小数点

G

通用格式

$

美元

*

图标

%

百分比

Digits

小数点后的位数

注:只有当“;P?”字段不存在的时候,且Ch1为可用小数点控制的格式,如“F;DE3G10;M220”、“F;DF3G10;M220”

ch2

对齐方式

C

居中

G

标准

L

靠左

R

靠右

-

忽略

X

填充

nWidth

设置列的宽度,单位(字符)

3.4.5.1.3      S 风格

下面的字符可以是样式的一部分:

I

斜体

D

加粗

T

网格线的顶部

L

网格线的左边

B

网格线的底部

R

网格线的右边

S

背景阴影

3.4.5.2 兼容字段

至少有一个标识必须存在(;X, ;Y, ;C, ;R, ;D, ;E, ;K, ;W, ;P, ;H, ;G)。

如果 ;X 或者 ;Y 存在, ;X 和 ;Y必须同时存在(设置单元格式)。

如果 ;X存在, ;R, ;C, ;E, ;K, ;W, ;N, ;H, ;G必须不存在。

如果 ;R存在, ;X, ;Y, ;C, ;E, ;K, ;W, ;N, ;H, ;G必须不存在(设置行格式)。

如果 ;C存在, ;X, ;Y, ;R, ;E, ;K, ;W, ;N, ;H, ;G必须不存在(设置列格式)。

如果 ;D存在,;X, ;Y, ;R, ;C必须不存在(设置电子表格格式)。

如果 ;X, ;Y, ;R, ;C存在,;P与/或 ;F与/或 ;S必须存在。

3.4.5.3 单元格属性

 F; < cl > < n > <c2 >

< cl > 

以下格式码中的一个:

默认

连续交叉单元格显示

科学计算

固定小数点

通用格式

首字符为$且保留2位小数

柱状图,每个单元中的一个星号(5个单元将*****)

< n > 

位数

< c2 > 

以下排列码中的一个:

默认

居中

一般(文本靠左, 数字靠右)

左对齐

右对齐

示例:一下SYLK代码演示了单元格属性:

ID;PWXL;N;E   

P;PGeneral

P;F黑体;M260

P;F宋体;M960;L33

P;F宋体;M960;L33

P;E宋体;M180;L44

F;W1 1 24 

F;W2 2 24

F;W3 10 24

F;W6 12 24

C;Y1;X1;K"Name"

C;Y1;X2;K"Title"

C;Y1;X3;K"Salary"

C;Y1;X4;K"Linenumber"

C;Y2;X1;K"Jari"

C;Y2;X2;K"Programmer"

C;Y2;X3;K"Less"

C;Y2;X4;K 1

C;Y3;X1;K"Michael"

C;Y1;X3;K"Title"

F;L3

F;FG0C;SM0;Y1;X1

F;FG0C;SM1;Y1;X2

F;FG0C;SM2;Y1;X3

F;FG0C;SM3;Y1;X4

C;K"Boss"

C;Y3;X3;K"More"

C;Y3;X4;K2

E

3.4.5.4 列宽

F;W< n1 > [S] < n2 > [S] < n3 > 

定义一列的宽度:

[S]

一个空格

< n1 >

第一列

< n2 >

最后一列

< n3 >

列的的字符个数的宽度

例: 添加如下SYLK代码,第1列和第2列的宽度将分别调整到20和30个字符。

F;W1 1 20

F;W2 2 30

3.4.6      O 记录

用途:选项

3.4.6.1 可选字段

A 迭代 增量

如果存在,允许值迭代。

如果不存在,不允许循环引用。

迭代:最大迭代次数;

增量:一步测试,如果小,那么完成。

C

最近的C记录前完成测试。

P

表格是被保护的

L

使用A1模式引用。

即如果在SYLK文件表达式中,;L赋值引用R1C1

M

如果存在,采用手动重新计算。

如果不存在,采用自动重新计算。

E

表宏

这个字段必须在NN记录;G;F字段第一次出现之前出现。

这个字段必须在第一个仅使用宏函数的C记录出现之前出现。

V

表示用于计算相对日期值的参考日期。

0:1 January 1900

4:1 January 1904

3.4.7      NU 记录

用途:文件名替换。

如果 NE记录存在,必须在其他记录之前。

3.4.7.1 必填字段:

L文件名

旧的文件名

F文件名

新的文件名

3.4.8      NE 记录

用途:外部链接

3.4.8.1 必填字段

E 表达式

电子表格的目标区域

F 文件名

源文件

S 表达式

外部表格的原始区域

3.4.9      NN 记录

用途:定义名称

如果NN在名称使用前出现会更有效果。

3.4.9.1 必填字段:

N 名称

名称

E 公式

表达描述名称值

3.4.9.2 可选字段

G ch1 ch2

可运行名(宏)使用命令键别名

K ch1 ch2

一般名称未使用的命令别名

F

能用作函数

3.4.9.3 兼容字段

如果 ;G是存在的;K必须不存在。

3.4.10             W 记录

用途:定义窗口

3.4.11             NL 记录

用途:图表外部链接。

3.4.12             E 记录

用途:文件结束.

注意:必须是最后的一个记录。

3.5             附言

日期和时间被存储为浮点值。整数部分是从1900年1月1日开始算起的天数(如果O记录包含 ;V0标识,指定1900年为计算时间的起点),小数部分是总秒数除以 86400 (60*60*24为一天的总秒数)。SYLK时间转换成UNIX时间:用SYLK时间减去1970年1月1日和1900年1月1日之间的差(25569天),然后乘以86400。UNIX时间转换成SYLK时间:用UNIX时间除以86400,然后加上25569。该单元格样式必须设置一些日期格式值,例:P;Pdd/mm/yyyy\ hh:mm:ss 正确的显示。.slk 文件用Excel打开的时候,每个单元的字符限制长度是255。在LibreOffice中没有这个限制。

4      附件表

4.1             L颜色表

颜色样式

颜色名称

序号

二进制

RGB值

黑色

L0

00000000

(0,0,0)

黑色

L1

00000001

(0,0,0)

白色

L2

00000010

(255,255,255)

红色

L3

00000011

(255,0,0)

绿色

L4

00000101

(0,255,0)

蓝色

L5

00000110

(0,0,255)

黄色

L6

00000111

(255,255,0)

紫色

L7

00001000

(255,0,255)

水蓝色

L8

00001001

(0,255,255)

黑色

L9

00001010

(0,0,0)

白色

L10

00001011

(255,255,255)

红色

L11

00001100

(255,0,0)

绿色

L12

00001101

(0,255,0)

蓝色

L13

00001110

(0,0,255)

黄色

L14

00001111

(255,255,0)

紫色

L15

00010000

(255,0,255)

水蓝色

L16

00010001

(0,255,255)

深红

L17

00010010

(128,0,0)

深绿

L18

00010011

(0,128,0)

深蓝

L19

00010100

(0,0,128)

深黄

L20

00010101

(128,128,0)

深紫

L21

00010110

(128,0,128)

深青

L22

00010111

(0,128,128)

灰色-25%

L23

00011000

(192,192,192)

灰色-50%

L24

00011001

(128,128,128)

浅蓝

L25

00011010

(153,153,255)

粉红

L26

00011011

(153,51,102)

浅黄

L27

00011100

(255,255,204)

天蓝

L28

00011101

(204,255,255)

深紫

L29

00011110

(102,0,102)

玫瑰红

L30

00011111

(255,128,128)

蓝色

L31

00100000

(0,102,204)

浅蓝

L32

00100001

(204,204,255)

深蓝

L33

00100010

(0,0,128)

紫色

L34

00100011

(255,0,255)

黄色

L35

00100100

(255,255,0)

水绿色

L36

00100101

(0,255,255)

深紫

L37

00100110

(128,0,128)

深红

L38

00100111

(128,0,0)

深青

L39

00101000

(0,128,128)

蓝色

L40

00101001

(0,0,255)

青绿

L41

00101010

(0,204,255)

天蓝

L42

00101011

(204,255,255)

浅绿

L43

00101100

(204,255,204)

浅黄

L44

00101101

(255,255,153)

浅蓝

L45

00101110

(153,204,255)

粉红

L46

00101111

(255,153,204)

淡紫

L47

00110000

(204,153,255)

浅橙色

L48

00110001

(255,204,153)

蓝色

L49

00110010

(51,102,255)

青色

L50

00110011

(51,204,204)

绿色

L51

00110100

(153,204,0)

金色

L52

00110101

(255,204,0)

橙色

L53

00110110

(255,153,0)

橙色

L54

00110111

(255,102,0)

靛蓝

L55

00111000

(102,102,153)

灰色-50%

L56

00111001

(150,150,150)

深蓝

L57

00111010

(0,51,102)

绿色

L58

00111011

(51,153,102)

深绿

L59

00111100

(0,51,0)

深黄

L60

00111101

(51,51,0)

褐色

L61

00111110

(153,51,0)

粉红

L62

00111111

(153,51,102)

靛蓝

L63

01000000

(51,51,153)

灰色-80%

L64

01000001

(51,51,51)

注意:在使用SM调用字体格式的时候,SM4是空缺的,index0开始

如果index<4; SM[index]引用 P;E/F[index]

如果index=4; SM[index](字体宋体,字体加粗,颜色-黑色);

如果index>4; SM[index]引用P;E/F[index-1]

4.2             月份简称表

月份

简称

全称

古文

一月

Jan

January

建寅、元春、初岁、太簇、端月、王月、孟春、谨月、孟阳、上春、肇岁、泰月、新月、履端、首春、元阳、献春、春岁、青阳、梦阳、芳岁、华岁、发岁、新正、三之日、三阳月、三微月

二月

Feb

February

卯月、如月、令月、丽月、酣月、跳月、杏月、冷月、殷月、夹钟(钟)、仲春、春中、中和、仲阳、三春、阳中、竹秋、四阳月。 

三月

Mar

March

辰月、嘉月、花月、樱月、宿月、季春、暮春、杪春、姑洗、桃李月、五阳月。 

四月

Apr

April

巳月、余月、乏月、梅月、云月、鸟月、张月、槐月、仲吕、清和、麦秋、夏首、始夏、蚕虫、孟夏、槐序。 

五月

May

May

午月、皋月、蒲月、鹑月、早月、桔月、蕤宾、端阳、仲夏。 

六月

Jun

June

未月、且月、焦月、伏月、荷月、暑月、林钟(钟)、晚夏、季夏、长夏、百钟、二阴月。 

七月

Jul

July

申月、相月、瓜月、兰月、凉月、巧月、桐月、夷则、兰秋、孟秋、肇秋、首秋、初秋、开秋、孟商、巧夕、三阴月。 

八月

Aug

August

酉月、壮月、桂月、时月、南吕、清秋、中律、仲秋、仲商、正秋、剥枣、桂秋、四阴月、竹小春。

九月

Sep

September

 戌月、玄月、菊月、霜月、朽月、长月、无射、秒秋、季商、季秋、菊序、霜序、末秋、梢秋。 

十月

Oct

October

亥月、阳月、良月、吉月、应钟(钟)、孟冬、小春、玄冬、上冬、初冬、立冬、方冬、开冬、正阴、小阳春。 

十一月

Nov

November

子月、畅月、纸月、黄钟(钟)、仲冬、龙潜、云半、冬半、风寒、芸生、日冻、天正月、一阳月。 

十二月

Dec

December

丑月、涂月、腊月、除月、严月、余月、临月、季月、极月、大吕、嘉平、季冬、暮冬、岁杪、黄冬、晚冬、暮节、雕年、穷阴、穷冬、杪冬、地正月、二阳月。   

5      附件示例

5.1             初始化单元格式

ID;PWXL;N;E

P;PGeneral

P;P0

P;P0.00

P;P#,##0

P;P#,##0.00

P;P#,##0;;\-#,##0

P;P#,##0;;[Red]\-#,##0

P;P#,##0.00;;\-#,##0.00

P;P#,##0.00;;[Red]\-#,##0.00

P;P"$"#,##0;;\-"$"#,##0

P;P"$"#,##0;;[Red]\-"$"#,##0

P;P"$"#,##0.00;;\-"$"#,##0.00

P;P"$"#,##0.00;;[Red]\-"$"#,##0.00

P;P0%

P;P0.00%

P;P0.00E+00

P;P##0.0E+0

P;P#\ ?/?

P;P#\ ??/??

P;Pyyyy/m/d

P;Pd/mmm/yy

P;Pd/mmm

P;Pmmm/yy

P;Phh:mm\ AM/PM

P;Phh:mm:ss\ AM/PM

P;Phh:mm

P;Phh:mm:ss

P;Pyyyy/m/d\ hh:mm

P;Pmm:ss

P;Pmm:ss.0

P;P@

P;P[h]:mm:ss

P;P_-"$"* #,##0_-;;\-"$"* #,##0_-;;_-"$"* "-"_-;;_-@_-

P;P_-* #,##0_-;;\-* #,##0_-;;_-* "-"_-;;_-@_-

P;P_-"$"* #,##0.00_-;;\-"$"* #,##0.00_-;;_-"$"* "-"??_-;;_-@_-

P;P_-* #,##0.00_-;;\-* #,##0.00_-;;_-* "-"??_-;;_-@_-

P;P\$#,##0_);;\(\$#,##0\)

P;P\$#,##0_);;[Red]\(\$#,##0\)

P;P\$#,##0.00_);;\(\$#,##0.00\)

P;P\$#,##0.00_);;[Red]\(\$#,##0.00\)

P;Pm/d/yy

P;Pyyyy"年"m"月"d"日"

P;Phh"时"mm"分"

P;Phh"时"mm"分"ss"秒"

P;Pyyyy"年"m"月"

P;Pm"月"d"日"

P;P上午/下午hh"时"mm"分"

P;P上午/下午hh"时"mm"分"ss"秒"

P;P"$"#,##0;;"$"\-#,##0

P;P"$"#,##0;;[Red]"$"\-#,##0

P;P"$"#,##0.00;;"$"\-#,##0.00

P;P"$"#,##0.00;;[Red]"$"\-#,##0.00

P;P_ "$"* #,##0_ ;;_ "$"* \-#,##0_ ;;_ "$"* "-"_ ;;_ @_

P;P_ * #,##0_ ;;_ * \-#,##0_ ;;_ * "-"_ ;;_ @_

P;P_ "$"* #,##0.00_ ;;_ "$"* \-#,##0.00_ ;;_ "$"* "-"??_ ;;_ @_

P;P_ * #,##0.00_ ;;_ * \-#,##0.00_ ;;_ * "-"??_ ;;_ @_

P;P"Yes";;"Yes";;"No"

P;P"True";;"True";;"False"

P;P"On";;"On";;"Off"

P;P[$€-2]\ #,##0.00_);;[Red]\([$€-2]\ #,##0.00\)

P;P0.00_

P;P0_

P;F宋体;M240

P;F宋体;M240

P;F宋体;M240

P;F宋体;M240

P;E宋体;M180

P;E宋体;M240

P;EArial;M180;L56

P;E宋体;M240

P;E宋体;M180;L56

P;E宋体;M240

P;E宋体;M220;L9

P;E宋体;M220;L43

P;E宋体;M360;SB;L63

P;E宋体;M300;SB;L63

P;E宋体;M260;SB;L63

P;E宋体;M220;SB;L63

P;E宋体;M220;L21

P;E宋体;M220;L18

P;E宋体;M220;SB;L9

P;E宋体;M220;SB;L53

P;E宋体;M220;SB;L43

P;E宋体;M220;SI;L24

P;E宋体;M220;L11

P;E宋体;M220;L53

P;E宋体;M220;L61

P;E宋体;M220;SB;L64

P;E宋体;M220;L63

P;EArial;M180;L56

P;E宋体;M220;L9

P;E宋体;M220;L43

P;E宋体;M360;SB;L63

P;E宋体;M300;SB;L63

P;E宋体;M260;SB;L63

P;E宋体;M220;SB;L63

P;E宋体;M220;L21

P;E宋体;M220;L18

P;E宋体;M220;SB;L9

P;E宋体;M220;SB;L53

P;E宋体;M220;SB;L43

P;E宋体;M220;SI;L24

P;E宋体;M220;L11

P;E宋体;M220;L53

P;E宋体;M220;L61

P;E宋体;M220;SB;L64

P;E宋体;M220;L63

P;EArial;M180;L56

P;E宋体;M240

P;E宋体;M240;SU

P;E宋体;M180

F;P0;DG0G8;M285

B;Y2;X3;D10 3 10 3

O;L;D;V0;K47;G100 0.001

E

5.2             设置内容

示例:以下是一个以.slk为后缀名的文本文件其中的SYLK代码:

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;K33

E

当使用合适的电子表格读取时,它将会像下面的表格显示一样:

Row 1

11

Row 2

22

Total

33

5.3             设置字体颜色

ID;PWXL;N;E   

P;PGeneral

P;F黑体;M260;L1

P;F黑体;M260;L2

P;F黑体;M260;L3

P;F黑体;M260;L4

P;E黑体;M260;L5

P;E黑体;M260;L6

P;E黑体;M260;L7

P;E黑体;M260;L8

P;E黑体;M260;L9

P;E黑体;M260;L10

P;E黑体;M260;L11

P;E黑体;M260;L12

P;E黑体;M260;L13

P;E黑体;M260;L14

P;E黑体;M260;L15

P;E黑体;M260;L16

P;E黑体;M260;L17

P;E黑体;M260;L18

P;E黑体;M260;L19

P;E黑体;M260;L20

P;E黑体;M260;L21

P;E黑体;M260;L22

P;E黑体;M260;L23

P;E黑体;M260;L24

P;E黑体;M260;L25

P;E黑体;M260;L26

P;E黑体;M260;L27

P;E黑体;M260;L28

P;E黑体;M260;L29

P;E黑体;M260;L30

P;E黑体;M260;L31

P;E黑体;M260;L32

P;E黑体;M260;L33

P;E黑体;M260;L34

P;E黑体;M260;L35

P;E黑体;M260;L36

P;E黑体;M260;L37

P;E黑体;M260;L38

P;E黑体;M260;L39

P;E黑体;M260;L40

P;E黑体;M260;L41

P;E黑体;M260;L42

P;E黑体;M260;L43

P;E黑体;M260;L44

P;E黑体;M260;L45

P;E黑体;M260;L46

P;E黑体;M260;L47

P;E黑体;M260;L48

P;E黑体;M260;L49

P;E黑体;M260;L50

P;E黑体;M260;L51

P;E黑体;M260;L52

P;E黑体;M260;L53

P;E黑体;M260;L54

P;E黑体;M260;L55

P;E黑体;M260;L56

P;E黑体;M260;L57

P;E黑体;M260;L58

P;E黑体;M260;L59

P;E黑体;M260;L60

P;E黑体;M260;L61

P;E黑体;M260;L62

P;E黑体;M260;L63

P;E黑体;M260;L64

C;Y1;X1;K"#"

C;Y2;X1;K"#"

C;Y3;X1;K"#"

C;Y4;X1;K"#"

C;Y5;X1;K"#"

C;Y6;X1;K"#"

C;Y7;X1;K"#"

C;Y8;X1;K"#"

C;Y9;X1;K"#"

C;Y10;X1;K"#"

C;Y11;X1;K"#"

C;Y12;X1;K"#"

C;Y13;X1;K"#"

C;Y14;X1;K"#"

C;Y15;X1;K"#"

C;Y16;X1;K"#"

C;Y17;X1;K"#"

C;Y18;X1;K"#"

C;Y19;X1;K"#"

C;Y20;X1;K"#"

C;Y21;X1;K"#"

C;Y22;X1;K"#"

C;Y23;X1;K"#"

C;Y24;X1;K"#"

C;Y25;X1;K"#"

C;Y26;X1;K"#"

C;Y27;X1;K"#"

C;Y28;X1;K"#"

C;Y29;X1;K"#"

C;Y30;X1;K"#"

C;Y31;X1;K"#"

C;Y32;X1;K"#"

C;Y33;X1;K"#"

C;Y34;X1;K"#"

C;Y35;X1;K"#"

C;Y36;X1;K"#"

C;Y37;X1;K"#"

C;Y38;X1;K"#"

C;Y39;X1;K"#"

C;Y40;X1;K"#"

C;Y41;X1;K"#"

C;Y42;X1;K"#"

C;Y43;X1;K"#"

C;Y44;X1;K"#"

C;Y45;X1;K"#"

C;Y46;X1;K"#"

C;Y47;X1;K"#"

C;Y48;X1;K"#"

C;Y49;X1;K"#"

C;Y50;X1;K"#"

C;Y51;X1;K"#"

C;Y52;X1;K"#"

C;Y53;X1;K"#"

C;Y54;X1;K"#"

C;Y55;X1;K"#"

C;Y56;X1;K"#"

C;Y57;X1;K"#"

C;Y58;X1;K"#"

C;Y59;X1;K"#"

C;Y60;X1;K"#"

C;Y61;X1;K"#"

C;Y62;X1;K"#"

C;Y63;X1;K"#"

C;Y64;X1;K"#"

C;Y65;X1;K"#"

F;FG0C;SM0;Y1;X1

F;FG0C;SM1;Y2;X1

F;FG0C;SM2;Y3;X1

F;FG0C;SM3;Y4;X1

F;FG0C;SM5;Y6;X1

F;FG0C;SM6;Y7;X1

F;FG0C;SM7;Y8;X1

F;FG0C;SM8;Y9;X1

F;FG0C;SM9;Y10;X1

F;FG0C;SM10;Y11;X1

F;FG0C;SM11;Y12;X1

F;FG0C;SM12;Y13;X1

F;FG0C;SM13;Y14;X1

F;FG0C;SM14;Y15;X1

F;FG0C;SM15;Y16;X1

F;FG0C;SM16;Y17;X1

F;FG0C;SM17;Y18;X1

F;FG0C;SM18;Y19;X1

F;FG0C;SM19;Y20;X1

F;FG0C;SM20;Y21;X1

F;FG0C;SM21;Y22;X1

F;FG0C;SM22;Y23;X1

F;FG0C;SM23;Y24;X1

F;FG0C;SM24;Y25;X1

F;FG0C;SM25;Y26;X1

F;FG0C;SM26;Y27;X1

F;FG0C;SM27;Y28;X1

F;FG0C;SM28;Y29;X1

F;FG0C;SM29;Y30;X1

F;FG0C;SM30;Y31;X1

F;FG0C;SM31;Y32;X1

F;FG0C;SM32;Y33;X1

F;FG0C;SM33;Y34;X1

F;FG0C;SM34;Y35;X1

F;FG0C;SM35;Y36;X1

F;FG0C;SM36;Y37;X1

F;FG0C;SM37;Y38;X1

F;FG0C;SM38;Y39;X1

F;FG0C;SM39;Y40;X1

F;FG0C;SM40;Y41;X1

F;FG0C;SM41;Y42;X1

F;FG0C;SM42;Y43;X1

F;FG0C;SM43;Y44;X1

F;FG0C;SM44;Y45;X1

F;FG0C;SM45;Y46;X1

F;FG0C;SM46;Y47;X1

F;FG0C;SM47;Y48;X1

F;FG0C;SM48;Y49;X1

F;FG0C;SM49;Y50;X1

F;FG0C;SM50;Y51;X1

F;FG0C;SM51;Y52;X1

F;FG0C;SM52;Y53;X1

F;FG0C;SM53;Y54;X1

F;FG0C;SM54;Y55;X1

F;FG0C;SM55;Y56;X1

F;FG0C;SM56;Y57;X1

F;FG0C;SM57;Y58;X1

F;FG0C;SM58;Y59;X1

F;FG0C;SM59;Y60;X1

F;FG0C;SM60;Y61;X1

F;FG0C;SM61;Y62;X1

F;FG0C;SM62;Y63;X1

F;FG0C;SM63;Y64;X1

F;FG0C;SM64;Y65;X1

E

5.4             数字格式

第2列的应用的格式是P2,P2表示保留小数点后两位。

F;P2;C2

如下:P0 表示一般;P1 表示无小数点;P2 表示两位数;P3 保留两位小数且第一个符号为$。

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

当使用合适的电子表格读取时,它将会像下面的表格显示一样:

Row 1

11.00

Row 2

22.00

Total

33.00

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值