Symbolický odkaz (SYLK) - Symbolic Link (SYLK) - Wikipedia
Symbolický odkaz (SYLK) je Microsoft formát souboru, který se obvykle používá k výměně dat mezi aplikacemi, konkrétně tabulky. Soubory SYLK mají obvykle .slk
přípona. Skládá se pouze z viditelných ANSI znaků, lze jej snadno vytvořit a zpracovat jinými aplikacemi, jako např databáze.
Společnost Microsoft nezveřejňuje specifikaci SYLK. Varianty formátu jsou podporovány Multiplan, Microsoft Excel, Microsoft Works, OpenOffice.org, LibreOffice[1] a Číselný. Formát byl představen v 80. letech a od roku 1986 se nevyvinul[2].
Běžně se vyskytující (a falešný) „výskyt“ souboru SYLK se stane, když a hodnota oddělená čárkou Formát (CSV) je uložen s nekótovaným prvním názvem pole „ID“, to znamená, že první dva znaky odpovídají prvním dvěma znakům formátu souboru SYLK. Microsoft Excel (minimálně pro Office 2016) poté vydá zavádějící chybové zprávy týkající se formátu souboru, například „Soubor, který se pokoušíte otevřít,„ x.csv “, je v jiném formátu, než jaký určuje soubor rozšíření...".[3][4]
Je známo, že SYLK způsobuje bezpečnostní problémy, protože umožňuje útočníkovi spustit libovolný kód, nabízí příležitost zamaskovat vektor útoku pod benigním vzhledem souboru CSV a ve výchozím nastavení je stále povolen v posledních verzích aplikace Microsoft Excel (2016)[2].
Omezení
SYLK nemá podporu pro Unicode. I když je soubor SYLK vytvořen aplikací, která podporuje Unicode (například Microsoft Excel), bude soubor SYLK zakódován do aktuálního systému ANSI kódová stránka, nikoli v Unicode. Pokud aplikace obsahovala znaky, které byly zobrazitelné v Unicode, ale na kódové stránce aktuálního systému nemají žádný bod kódu, budou převedeny na otazníky ('?') V souboru SYLK.
Středník je v SYLK považován za oddělovač polí, takže jej nelze použít bez hodnot v hodnotách dat. Pokud má řetězec znaků v souboru SYLK obsahovat středník (;), měl by mít předponu s jiným středníkem, aby řetězec vypadal například jako „WIDGET ;; AXC1254“. MS Excel při importu odstraní první středník a datový prvek se zobrazí jako „WIDGET; AXC1254“.
Každý řádek vstupního souboru SYLK nesmí být delší než 260 znaků. V opačném případě aplikace Microsoft Excel vydá chybovou zprávu a přeskočí načítání podlouhlé čáry.
Ukázkový kód SYLK
Jako příklad následující kód SYLK v textovém souboru s příponou .slk:
ID; PC; Y1; X1; K "řádek 1" C; Y2; X1; K "řádek 2" C; Y3; X1; K "celkem" C; Y1; X2; K11C; Y2; X2; K22C; Y3; X2; K33E
by se zobrazil takto při čtení příslušnou tabulkou:
Řádek 1 | 11 |
Řádek 2 | 22 |
Celkový | 33 |
pro číselné formátování
Formátování 2 desetinných míst se použije na sloupec 2 pomocí
F; P2; C2
kde P0 je Obecné, P1 je bez desetinných míst, P2 je pro 2 číslice, P3 má úvodní znak $ se 2 desetinnými čárkami, jak je definováno níže.
ID; PP; PGeneralP; P _ (* #, ## 0 _) ;; _ (* - #, ## 0 _) ;; _ (* "-" _) ;; _ (@_) P; P _ (* #, ## 0,00 _) ;; _ (* (#, ## 0,00 ) ;; _ (* "-" ?? _) ;; _ (@_) P; P _ ("$" * #, ## 0,00 _) ;; _ ("$" * (#, ## 0,00 ) ;; _ ("$" * "-" ?? _) ;; _ (@_) C; Y1; X1; K „řádek 1“ C; Y2; X1; K „řádek 2“ C; Y3; X1; K „celkem“ C; Y1; X2; K11C; Y2; X2; K22C; Y3; X2; K0; ER1C2 + R2C2F; P2; C2E
by se zobrazil takto při čtení příslušnou tabulkou:
Řádek 1 | 11.00 |
Řádek 2 | 22.00 |
Celkový | 33.00 |
pro šířku sloupce
F; W
definuje šířky skupiny sloupců:
- [S]
- jedno místo
- < n1 >
- první sloupec
- < n2 >
- poslední sloupec
- < n3 >
- šířka sloupců v počtu znaků
Například: Přidáním těchto kódů SYLK se upraví šířka sloupce ve sloupci 1 a 2 na 20, respektive 30.
F; W1 1 20F; W2 2 30
vlastnosti formátování buněk
F;
- < cl >
- jeden z následujících jednoznakových formátovacích kódů:
- D
- výchozí
- C
- průběžné zobrazení mezi buňkami
- E
- vědecká umocňování
- F
- pevná desetinná čárka
- G
- obecný formát
- $
- vedoucí $ a 2 desetinná místa
- *
- sloupcový graf, jedna hvězdička na jednotku (5 by bylo *****)
- < n >
- počet číslic.
- < c2 >
- jeden z následujících kódů zarovnání 1 znaku:
- D
- výchozí
- C
- centrum
- G
- obecně (textleft, numbersright)
- L
- vlevo ospravedlnit
- R
- správně ospravedlnit
Například: Následující kód SYLK ukazuje vlastnosti formátování buňky:
ID; PP; PGeneral C; Y1; X1; K "řádek 1 zarovnání vlevo" F; P0; FG0L C; Y2; X1; K "řádek 2 zarovnání vpravo" F; P0; FG0R C; Y3; X1; K "celkem ve středu "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 $ 2CF; W1 2 25 E
Syntaxe SYLK
SYLK_file :: = Záznam + Záznam :: = Pole RecordType * nový řádek
- ID záznam
- Použití:
- Záhlaví k identifikaci typu a tvůrce tabulky.
- Musí to být první záznam v souboru.
- Typ záznamu:
- ID
- Povinná pole:
- Program P.
- tvůrce souborů
- Mezi možné autory patří:
- MP (Multiplan)
- XL (Excel)
- Mezi možné autory patří:
- tvůrce souborů
- Možná pole:
- N
- Pokud je k dispozici, používá soubor; N ochrana buněk ve stylu
- Pokud chybí, použije soubor; ochrana buněk ve stylu P.
- E
- Pokud jsou k dispozici, jsou NE záznamy nadbytečné
- Pokud chybí, NE záznamy nejsou nadbytečné
- Použití:
- B záznam
- Použití:
- Říká počet řádků a sloupců v tabulce.
- Doporučeno, aby to přišlo před záznamy C a F.
- Typ záznamu:
- B
- Povinná pole:
- X sloupců
- říká maximální počet sloupců
- Y řádky
- říká maximální počet řádků
- Použití:
- C záznam
- Použití:
- Obsah buněk
- Typ záznamu:
- C
- Povinná pole:
- X sloupec
- pozice sloupce (založeno na jednom)
- Možná pole:
- Y řádek
- pozice řádku (jedna založená). Pokud je vynechán, použije se naposledy zjištěná hodnota.
- E výraz
- výraz pro buňku
- Hodnota K.
- hodnota buňky
- Sloupec C.
- odkaz na sloupec
- Řada R.
- odkaz na řádek
- G
- definuje sdílenou hodnotu
- D
- definuje sdílený výraz
- S
- odkazuje na sdílenou hodnotu nebo sdílený výraz
- N
- Pokud je buňka přítomna, není chráněna.
- Pokud chybí a v záznamu ID je přítomno; N, buňka je chráněna.
- P
- Pokud je buňka přítomna, je chráněna.
- Pokud v záznamu ID chybí a; N chybí, buňka není chráněna.
- H
- Pokud je buňka přítomna, je skrytá.
- Pokud chybí, buňka není skrytá.
- M výraz
- maticový výraz od (X, Y) do (C, R)
- Já
- uvnitř matice
- Kompatibilní pole:
- Pokud je přítomno; G, musí být E nepřítomné.
- Pokud; G je přítomen;; K musí být přítomen.
- Pokud; D je přítomen;; E musí být přítomen.
- Pokud je přítomno; S,; E,; K,; G,; D a; M musí být nepřítomné.
- Pokud je přítomno; S, musí být přítomno; R a; C. (Definují řádek a sloupec, ze kterého je kopírována sdílená hodnota / výraz.)
- Pokud je v záznamu ID přítomno; N, musí být nepřítomné.
- Pokud; N není v záznamu ID,; N musí být nepřítomné.
- Pokud je přítomno; M, musí být E nepřítomné.
- Pokud; I je přítomen;; K a; E musí být nepřítomné
- Použití:
- P záznam
- Použití:
- Formát buňky
- Pokud jsou k dispozici F záznamy, předchází je.
- Povinná pole:
- P formátování
- Specifikace formátu buňky ve stylu Excel
- Použití:
- F záznam
- Použití:
- Formát
- Pokud jsou přítomny P záznamy, sledujte je.
- Možná pole:
- X sloupec
- sloupec (jeden založen)
- Y řádek
- řádek (jeden založený)
- Sloupec C.
- sloupec (jeden založen)
- Řada R.
- řádek (jeden založený)
- Formát F.
- Formát buňky / řádku / sloupce
- Formát formátu je
- ch1 číslice ch2
- ch1 je
- D
- výchozí
- C
- měna
- E
- exponent
- F
- pevný
- G
- Všeobecné
- $
- dolar
- *
- graf
- %
- procent
- digits je počet číslic za desetinnou čárkou
- ch2 je zarovnání
- D
- výchozí
- C
- centrum
- G
- Standard
- L
- vlevo, odjet
- R
- že jo
- -
- ignorováno
- X
- vyplnit
- Formát D.
- Výchozí formát.
- Formát formátu je
- ch1 číslice ch2
- ch1 je
- C
- měna
- E
- exponent
- F
- pevný
- G
- Všeobecné
- $
- dolar
- *
- graf
- %
- procent
- digits je počet číslic za desetinnou čárkou
- ch2 je zarovnání
- C
- centrum
- G
- Standard
- L
- vlevo, odjet
- R
- že jo
- -
- ignorováno
- X
- vyplnit
- E
- zobrazit vzorce
- K.
- zobrazit čárky
- Šířka col1 col2
- nastavit šířky sloupců
- N velikost písma
- písmo, které se má použít
- P index
- Formát buňky Excel, číslo záznamu P (např.P0 znamená první záznam P, který je obvykle deklarován jako P; PGVšeobecný
- S styl
- styl
- Následující znaky mohou být součástí stylu
- Já
- kurzíva
- D
- tučně
- T
- mřížka nahoře
- L
- mřížka vlevo
- B
- mřížka dole
- R
- mřížka vpravo
- S
- stínované pozadí
- H
- Pokud jsou k dispozici, nezobrazovat záhlaví řádků / sloupců
- Pokud chybí v celém souboru, zobrazí záhlaví řádků / sloupců
- G
- Pokud jsou k dispozici, nezobrazovat výchozí mřížky
- Pokud chybí v celém souboru, zobrazí výchozí mřížky
- Kompatibilní pole:
- Musí být přítomno alespoň jedno z; X,; Y,; C;; R; D; E; K; W; P; H nebo; G.
- Pokud je přítomno; X nebo; Y, musí být přítomny oba; X a; Y. (Tím se nastaví formát buňky.)
- Je-li přítomno; X,; R; C; E; K; W; N; H; G musí být nepřítomné.
- Pokud; R je přítomen; X; Y; C; E; K; W; N; H; G musí být nepřítomné. (Tím se nastaví výchozí formát řádku.)
- Pokud; C je přítomno; X; Y; R; E; K; W; N; H; G musí chybět. (Tím se nastaví výchozí formát sloupce.)
- Pokud je přítomno; D,; X,; Y,; R,; C musí být nepřítomné. (Tím se nastaví výchozí formát tabulky.)
- Pokud jsou přítomny: X, Y, R, C, P a / nebo F a / nebo S.
- Použití:
- Ó záznam
- Použití:
- Možnosti
- Možná pole:
- Iter delta
- Pokud je k dispozici, povolte iteraci hodnoty
- Pokud chybí, kruhové odkazy nejsou povoleny.
- iter (maximální počet iterací)
- delta (krokový test. Pokud je menší, pak hotovo.)
- C
- dokončení testu v nejbližším předchozím záznamu C.
- P
- list je chráněn
- L
- použijte odkazy na režim A1
- I když; L je dáno R1C1 odkazy jsou použity ve výrazech souboru SYLK.
- M
- Pokud je k dispozici, použijte ruční přepočet.
- Pokud chybí, použijte automatický přepočet.
- E
- Makro list.
- To by se mělo objevit před prvním výskytem pole; G nebo; F v záznamu NN.
- To by se mělo objevit před prvním záznamem C, který používá funkci pouze pro makro.
- Hodnota V.
- hodnota označuje základní datum použité pro výpočet hodnot sériového data
- 0: 1. Ledna 1900
- 4: 1. ledna 1904
- Použití:
- NU záznam
- Použití:
- nahrazení názvu souboru
- Pokud jsou přítomny SV záznamy, musí před nimi být.
- Povinná pole:
- L název souboru
- starý název souboru
- F název souboru
- nový název souboru
- Použití:
- NE záznam
- Použití:
- Externí odkaz
- Povinná pole:
- E výraz
- Cílová oblast v tabulce
- F název souboru
- Zdrojový soubor
- S výraz
- Zdrojová oblast na externím listu
- Použití:
- NN záznam
- Použití:
- Definuje jména
- Efektivnější, pokud se NN objeví před použitím názvu.
- Povinná pole:
- N jméno
- název
- E výraz
- výraz popisující hodnotu jména
- Možná pole:
- G ch1 ch2
- spustitelný název (makro) s aliasem příkazového klíče
- K ch1 ch2
- běžný název s nepoužitými aliasy příkazů
- F
- použitelné jako funkce
- Kompatibilní pole:
- Pokud je přítomno; G, musí být K nepřítomné.
- Použití:
- Ž záznam
- Použití:
- Definice oken
- Použití:
- NL záznam
- Použití:
- Grafický externí odkaz
- Použití:
- E záznam
- Použití:
- Konec souboru.
- Musí to být poslední záznam.
- Použití:
Datum a čas jsou uloženy jako hodnota s plovoucí desetinnou čárkou. Celá část s číslem je počet dní od 1. ledna 1900 (pokud záznam O obsahuje direktivu; V0, která jako výchozí bod pro výpočty uvádí 1900), zlomek je počet sekund děleno 86400 (60 * 60 * 24, počet sekund za den). Převod na unixový čas lze provést odečtením rozdílu mezi 1. lednem 1970 a 1. lednem 1900 (25 569 dní) a následným vynásobením číslem 86400; převod z unixového času na SYLK datetime se provede vydělením hodnoty 86400 a následným přidáním 25569. Styl buňky musí být nastaven na nějakou hodnotu formátování data, např. P; Pdd / mm / rrrr hh: mm: ss
se zobrazí správně.
Exporty souborů .slk otevřené v aplikaci Excel mají v buňce limit 255 znaků. Tento limit není v LibreOffice přítomen.
externí odkazy
- Podrobné příklady najdete také na tady
Syntaxi pro SYLK najdete na:
- Souhrn Microsoft SYLK (viz také Zneužívání formátu souboru SYLK článek pro některé užitečné informace)
- Shrnutí formátu GFF: Microsoft SYLK
a v:
Limity týkající se čtení a ukládání v aplikaci Excel:
Reference
- ^ https://www.libreofficehelp.com/libreoffice-calc-supported-file-formats/
- ^ A b Stan Hegt (2019-10-30). "Zneužití formátu souboru SYLK". outflank.nl. Citováno 2019-12-14.
- ^ ""SYLK: Formát souboru není platný „chybová zpráva při otevření souboru“. Citováno 18. srpna 2015.
- ^ „Excel CSV import vrací chybu formátu souboru SYLK“. Citováno 18. srpna 2015.