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
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*强制转换即可。
WarCraftIII的MPQ包裹中有各种各样的slk文件,用来记录单位、技能、魔法效果、地形、天气、环境、声音、模型、贴图等等各种各样的数据。
修改slk可以做到很多连地图编辑器也难以做到的事情,而你所需要做的仅仅是把它们导出来,放到游戏文件夹下与mpq中相同的路径下,然后随心所欲的编辑。
slk可以用Excel等表格软件轻松的编辑,当然就算是用记事本编辑也不算太麻烦。
地图slk优化,是指把地图中的w3u,w3a,等等文件转化成slk。这样可以使地图载入速度大大加快,但是会增大地图体积。
slk优化也常常被称作"slk加密",事实上slk化只是让一些新手不容易修改地图数据而已,本身算不上加密。
顺序 |
格式 |
含义 |
第一行 |
ID;… |
文件头,包含文件的创建者(使用啥软件创建的),Excel = PWXL 文件是否是被保护的 |
紧随第二行 |
P;P… |
单元格格式-数字、文本 |
紧随“P;P…” |
P;F… P;E… |
字体样式(字体、颜色、字号) |
自定义 |
B;… |
告知电子表格边界 |
自定义 |
F;… |
设置格式 |
自定义 |
C;… |
设置内容 |
自定义 |
O;… |
选项 |
最后一行 |
E |
结束符号 |
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] |
左起第一个字符添加为自定义,第二个字符添加为空格。 |
Sylk文件常见的单元格式形式如下:
P;P格式1;;格式2;;格式3;;格式4
修改格式的顺序是:
1、 先将选择的区域所有内容设置成格式1;
2、 将小于的设置成格式2;
3、 将等于0 的设置成格式3;
4、 最后将文本设置成格式4。
这种格式都用于显示True False、Yes No、On Off、对错、负数警告等等。
用途:必须是文件的第一个记录。文件头标识了电子表格的类型和创建者。
记录类型:ID
P 应用程序 |
文件创建者 可能的创作者包括:MP (Multiplan)、XL (Microsoft Excel) 示例:PWXL (Microsoft Excel) |
N |
如果存在,文件使用;N风格单元保护 如果不存在,文件使用;P风格单元保护 |
E |
如果存在,NE记录是多余的 如果不存在,NE记录不是多余的 |
使用:告知电子表格的行数和列数(有效数据)。建议记录B之前先记录C和F。
X 列数 |
告知最大列数 |
Y 行数 |
告知最大行数 |
DYS XS YE XE |
告知预处理区域 起始坐标 (XS YS)终止坐标(XE,YE),编号从0开始。 示例:有效区域 (行1列1)到(行3列4) B;Y3;X4;D0 0 2 3 |
使用: 单元格内容
记录类型:C
X 列 |
列位置 |
Y 行 |
行位置 |
E 表达式 |
一个单元的表达式 |
K 值 |
一个单元的值 |
C 列 |
列引用 |
R 行 |
行引用 |
G |
定义共享值 |
D |
定义共享表达式 |
S |
引用共享值或共享表达式 |
N |
如果存在,单元格是没有保护的。. 如果不存在且;N在ID记录记录里面存在,单元格是被保护的. |
P |
如果存在,表格单元是被保护的。 如果不存在且;N在ID记录里面不存在,表格单元是不被保护的. |
H |
如果存在表格是单元是隐藏的, 如果不存在表格单元是显示的。 |
M 表达式 |
矩形区域表达式从(X,Y)到(C,R) |
I |
矩形区域内 |
如果;G存在,;E必须不存在。
如果;G存在,;K必须存在
如果;D存在,;E必须存在.
如果;S存在,;E、K、G、D和M必须不存在.
如果;S存在,;R和C必须存在。(他们定义了共享值/表达式的行和列)。
如果;N在ID记录里面存在,;P必须不存在.
如果;N在ID记录里面不存在,;N必须不存在
如果;M存在,;E必须不存在。
如果;I存在,;K和 ;E必须不存在。
用途:单元格式
如果 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颜色表 |
P格式 |
Excel的单元格样式格式规范 |
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% |
用途:设置单元格格式
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 |
F的格式是:
F ch1 digits ch2
ch1
数字格式
D |
默认 |
C |
货币 |
E |
指数 |
F |
固定小数 |
G |
通用格式 |
$ |
美元 |
* |
图表 |
% |
百分比 |
digits
小数点后的位数
ch2
对齐方式
D |
默认 |
C |
居中 |
G |
标准 |
L |
靠左 |
R |
靠右 |
- |
忽略 |
X |
填充 |
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
设置列的宽度,单位(字符)
下面的字符可以是样式的一部分:
I |
斜体 |
D |
加粗 |
T |
网格线的顶部 |
L |
网格线的左边 |
B |
网格线的底部 |
R |
网格线的右边 |
S |
背景阴影 |
至少有一个标识必须存在(;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必须存在。
F; < cl > < n >
< cl >
以下格式码中的一个:
D |
默认 |
C |
连续交叉单元格显示 |
E |
科学计算 |
F |
固定小数点 |
G |
通用格式 |
$ |
首字符为$且保留2位小数 |
* |
柱状图,每个单元中的一个星号(5个单元将*****) |
< n >
位数
< c2 >
以下排列码中的一个:
D |
默认 |
C |
居中 |
G |
一般(文本靠左, 数字靠右) |
L |
左对齐 |
R |
右对齐 |
示例:一下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
F;W< n1 > [S] < n2 > [S] < n3 >
定义一列的宽度:
[S] |
一个空格 |
< n1 > |
第一列 |
< n2 > |
最后一列 |
< n3 > |
列的的字符个数的宽度 |
例: 添加如下SYLK代码,第1列和第2列的宽度将分别调整到20和30个字符。
F;W1 1 20
F;W2 2 30
用途:选项
A 迭代 增量 |
如果存在,允许值迭代。 如果不存在,不允许循环引用。 迭代:最大迭代次数; 增量:一步测试,如果小,那么完成。 |
C |
最近的C记录前完成测试。 |
P |
表格是被保护的 |
L |
使用A1模式引用。 即如果在SYLK文件表达式中,;L赋值引用R1C1。 |
M |
如果存在,采用手动重新计算。 如果不存在,采用自动重新计算。 |
E |
表宏 这个字段必须在NN记录的;G或;F字段第一次出现之前出现。 这个字段必须在第一个仅使用宏函数的C记录出现之前出现。 |
V 值 |
值表示用于计算相对日期值的参考日期。 0:1 January 1900 4:1 January 1904 |
用途:文件名替换。
如果 NE记录存在,必须在其他记录之前。
L文件名 |
旧的文件名 |
F文件名 |
新的文件名 |
用途:外部链接
E 表达式 |
电子表格的目标区域 |
F 文件名 |
源文件 |
S 表达式 |
外部表格的原始区域 |
用途:定义名称
如果NN在名称使用前出现会更有效果。
N 名称 |
名称 |
E 公式 |
表达描述名称值 |
G ch1 ch2 |
可运行名(宏)使用命令键别名 |
K ch1 ch2 |
一般名称未使用的命令别名 |
F |
能用作函数 |
如果 ;G是存在的;K必须不存在。
用途:定义窗口
用途:图表外部链接。
用途:文件结束.
注意:必须是最后的一个记录。
日期和时间被存储为浮点值。整数部分是从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中没有这个限制。
颜色样式 |
颜色名称 |
序号 |
二进制 |
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是空缺的,index从0开始
如果index<4; SM[index]引用 P;E/F[index];
如果index=4; SM[index](字体宋体,字体加粗,颜色-黑色);
如果index>4; SM[index]引用P;E/F[index-1]。
月份 |
简称 |
全称 |
古文 |
一月 |
Jan |
January |
建寅、元春、初岁、太簇、端月、王月、孟春、谨月、孟阳、上春、肇岁、泰月、新月、履端、首春、元阳、献春、春岁、青阳、梦阳、芳岁、华岁、发岁、新正、三之日、三阳月、三微月 |
二月 |
Feb |
February |
卯月、如月、令月、丽月、酣月、跳月、杏月、冷月、殷月、夹钟(钟)、仲春、春中、中和、仲阳、三春、阳中、竹秋、四阳月。 |
三月 |
Mar |
March |
辰月、嘉月、花月、樱月、宿月、季春、暮春、杪春、姑洗、桃李月、五阳月。 |
四月 |
Apr |
April |
巳月、余月、乏月、梅月、云月、鸟月、张月、槐月、仲吕、清和、麦秋、夏首、始夏、蚕虫、孟夏、槐序。 |
五月 |
May |
May |
午月、皋月、蒲月、鹑月、早月、桔月、蕤宾、端阳、仲夏。 |
六月 |
Jun |
June |
未月、且月、焦月、伏月、荷月、暑月、林钟(钟)、晚夏、季夏、长夏、百钟、二阴月。 |
七月 |
Jul |
July |
申月、相月、瓜月、兰月、凉月、巧月、桐月、夷则、兰秋、孟秋、肇秋、首秋、初秋、开秋、孟商、巧夕、三阴月。 |
八月 |
Aug |
August |
酉月、壮月、桂月、时月、南吕、清秋、中律、仲秋、仲商、正秋、剥枣、桂秋、四阴月、竹小春。 |
九月 |
Sep |
September |
戌月、玄月、菊月、霜月、朽月、长月、无射、秒秋、季商、季秋、菊序、霜序、末秋、梢秋。 |
十月 |
Oct |
October |
亥月、阳月、良月、吉月、应钟(钟)、孟冬、小春、玄冬、上冬、初冬、立冬、方冬、开冬、正阴、小阳春。 |
十一月 |
Nov |
November |
子月、畅月、纸月、黄钟(钟)、仲冬、龙潜、云半、冬半、风寒、芸生、日冻、天正月、一阳月。 |
十二月 |
Dec |
December |
丑月、涂月、腊月、除月、严月、余月、临月、季月、极月、大吕、嘉平、季冬、暮冬、岁杪、黄冬、晚冬、暮节、雕年、穷阴、穷冬、杪冬、地正月、二阳月。 |
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 |
示例:以下是一个以.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 |
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 |
第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 |