Dowiązanie symboliczne (SYLK)

Łącze symboliczne ( SYLK ) to format pliku firmy Microsoft , zwykle używany do wymiany danych między aplikacjami, w szczególności arkuszami kalkulacyjnymi . Pliki SYLK zwykle mają .slk . Złożony tylko z wyświetlanych ANSI , może być łatwo tworzony i przetwarzany przez inne aplikacje, takie jak bazy danych .

Firma Microsoft nie publikuje specyfikacji SYLK. Warianty formatu są obsługiwane przez Multiplan , Microsoft Excel , Microsoft Works , OpenOffice.org , LibreOffice i Gnumeric . Format został wprowadzony w latach 80. i nie ewoluował od 1986 r.

Powszechnie spotykane (i fałszywe) „występowanie” pliku SYLK ma miejsce, gdy format wartości rozdzielanych przecinkami (CSV) jest zapisywany z niecytowaną nazwą pierwszego pola „ID”, czyli pierwsze dwa znaki pasują do pierwszych dwóch znaków format pliku SYLK. Program Microsoft Excel (przynajmniej w przypadku pakietu Office 2016) będzie wtedy emitował wprowadzające w błąd komunikaty o błędach dotyczące formatu pliku, takie jak „Plik, który próbujesz otworzyć,„ x.csv ”, ma inny format niż określony w pliku rozszerzenie...".

Wiadomo, że SYLK powoduje problemy z bezpieczeństwem , ponieważ umożliwia atakującemu uruchomienie dowolnego kodu , oferuje możliwość ukrycia wektora ataku pod łagodnie wyglądającym plikiem CSV i nadal jest domyślnie włączony w ostatnich (2016) wersjach Microsoft Excel.

Ograniczenia

SYLK nie obsługuje Unicode. Nawet jeśli plik SYLK zostanie utworzony przez aplikację obsługującą Unicode (na przykład Microsoft Excel), plik SYLK zostanie zakodowany na ANSI bieżącego systemu , a nie w Unicode. Jeśli aplikacja zawierała znaki, które były wyświetlane w Unicode, ale nie mają punktu kodowego na stronie kodowej bieżącego systemu, zostaną one przekonwertowane na znaki zapytania („?”) w pliku SYLK.

Średnik jest traktowany jako separator pól w SYLK, więc nie można go używać bez zmiany znaczenia w wartościach danych. Jeśli ciąg znaków w pliku SYLK ma zawierać średnik (;), to powinien być poprzedzony innym średnikiem, tak aby łańcuch wyglądał np. jako "WIDGET;;AXC1254". MS Excel usunie pierwszy średnik podczas importu, a element danych pojawi się jako „WIDGET;AXC1254”.

Każda linia pliku wejściowego SYLK nie może być dłuższa niż 260 znaków. W przeciwnym razie program Microsoft Excel wyświetli komunikat o błędzie i pominie ładowanie zbyt długiej linii.

Przykładowy kod SYLK

Na przykład następujący kod SYLK w pliku tekstowym z rozszerzeniem .slk:

ID;P C;Y1;X1;K"Rząd 1" C;Y2;X1;K"Rząd 2" C;Y3;X1;K"Razem" C;Y1;X2;K11 C;Y2;X2;K22 C; Y3;X2;K33 E

będzie wyświetlany w ten sposób, gdy zostanie odczytany przez odpowiedni arkusz kalkulacyjny:

Rząd 1 11
Rząd 2 22
Całkowity 33

do formatowania numerycznego

Formatowanie 2 cyfr dziesiętnych jest stosowane do kolumny 2 za pomocą

F;P2;C2

gdzie P0 oznacza Ogólne, P1 oznacza brak miejsca po przecinku, P2 oznacza 2 cyfry, P3 ma wiodący znak $ z dwoma miejscami po przecinku, jak zdefiniowano poniżej.

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

będzie wyświetlany w ten sposób, gdy zostanie odczytany przez odpowiedni arkusz kalkulacyjny:

Rząd 1 11.00
Rząd 2 22.00
Całkowity 33.00

dla szerokości kolumny

F;W< n1 > [S] < n2 > [S] < n3 > definiuje szerokości grupy kolumn:

[S]
jedna spacja
< n1 >
pierwsza kolumna
< n2 >
ostatnia kolumna
< n3 >
szerokość kolumn w liczbie znaków

Na przykład: dodanie tych kodów SYLK dostosuje szerokość kolumny 1 i 2 odpowiednio do 20 i 30.

F;W1 1 20 P;W2 2 30

właściwości formatowania komórek

 F; < cl > < n > < c2 >  
< cl >
jeden z następujących 1-znakowych kodów formatowania:
D
domyślny
C
ciągłe wyświetlanie międzykomórkowe
E
wykładnia naukowa
F
stała kropka dziesiętna
G
format ogólny
$
początkowe $ i 2 kropki dziesiętne
*
wykres słupkowy , jedna gwiazdka na jednostkę (5 oznaczałoby *****)
< n >
liczba cyfr.
< c2 >
jeden z następujących 1-znakowych kodów wyrównania:
D
domyślnie
C
środek
G
ogólne (tekst po lewej, liczby po prawej)
L
wyrównanie do lewej
R
wyrównanie do prawej

Na przykład: Poniższy kod SYLK demonstruje właściwości formatowania komórek:

ID;P P;POgólne C;Y1;X1;K"Wiersz 1 wyrównaj do lewej" F;P0;FG0L C;Y2;X1;K"Rząd 2 wyrównaj do prawej" F;P0;FG0R C;Y3;X1;K"Całkowity w środku” 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

Składnia SYLK

SYLK_file ::= Rekord + Rekord ::= Typ rekordu Pole* nowej linii
  • Rekord dowodu osobistego
    • Użyj:
      nagłówek identyfikujący typ arkusza kalkulacyjnego i twórcę.
      Musi być pierwszym rekordem w pliku.
    • Typ rekordu:
      ID
    • Pola obowiązkowe:
      program P
      kreator plików
      • potencjalni twórcy to:
        • MP (wieloplanowy)
        • XL (Excel)
    • Możliwe pola:
      N
      Jeśli obecne, plik używa ochrony komórek w stylu ;N
      Jeśli nie ma, plik używa ochrony komórek w stylu ;P
      E
      Jeśli obecne, rekordy NE są redundantne
      W przypadku braku, rekordy NE nie są redundantne
  • Rekord B
    • Zastosowanie:
      określa liczbę wierszy i kolumn w arkuszu kalkulacyjnym.
      Zaleca się, aby pojawił się przed rekordami C i F
    • Rodzaj rekordu:
      B
    • Pola obowiązkowe:
      X kolumn
      oznacza maksymalną liczbę kolumn
      Y wierszy
      określa maksymalną liczbę wierszy
  • Rekord C
    • Zastosowanie:
      Zawartość komórki
    • Typ rekordu:
      C
    • Pola obowiązkowe:
      kolumna X
      pozycja kolumny (oparta na jednej)
    • Możliwe pola: Pozycja
      wiersza Y
      (oparta na jednej). W przypadku pominięcia używana jest ostatnio napotkana wartość.
      E wyrażenie
      wyrażenie dla komórki
      K wartość
      wartość komórki
      C kolumna
      odwołanie do kolumny
      R wiersz
      odwołanie do wiersza
      G
      definiuje wspólną wartość
      D
      definiuje wspólne wyrażenie
      S
      odwołuje się do wspólnej wartości lub wspólnego wyrażenia
      N
      Jeśli występuje, komórka nie jest chroniona.
      Jeśli w rekordzie ID nie ma i występuje ;N, komórka jest chroniona.
      P
      Jeśli jest obecny, komórka jest chroniona.
      Jeśli nie ma i ;N nie występuje w rekordzie ID, komórka nie jest chroniona.
      H
      Jeśli jest obecna, komórka jest ukryta.
      Jeśli nie ma, komórka nie jest ukryta.
      M wyrażenie
      macierzowe wyrażenie od (X,Y) do (C,R)
      I
      wewnątrz macierzy
    • Kompatybilne pola:
      Jeśli występuje ;G, musi brakować ;E.
      Jeśli obecne jest ;G, musi występować ;K.
      Jeśli ;D jest obecne, ;E musi być obecne.
      Jeśli występuje ;S, to ;E, ;K, ;G, ;D i ;M muszą być nieobecne.
      Jeśli obecne jest ;S, muszą być obecne ;R i ;C. (Określają one wiersz i kolumnę, z których kopiowana jest współdzielona wartość/wyrażenie.)
      Jeśli w rekordzie identyfikatora występuje ;N, to ;P musi być nieobecne.
      Jeśli ;N nie występuje w rekordzie ID, ;N musi być nieobecny.
      Jeżeli ;M jest obecne, to ;E musi być nieobecne.
      Jeśli występuje ;I, to ;K i ;E muszą być nieobecne
  • Rekord P
    • Użyj:
      Format komórki
      Jeśli obecne są rekordy F, poprzedza je.
    • Pola obowiązkowe:
      Formatowanie P
      Specyfikacja formatu komórek w stylu Excela
  • Rekord F
    • Użyj:
      Formatuj
      Jeśli obecne są rekordy P, następuje po nich.
    • Możliwe pola:
      X kolumna
      kolumna (oparta na jednej)
      Y wiersz
      wiersza (oparta na jednej) Kolumna
      C
      kolumna (oparta na jednej)
      R wiersz
      wiersz (oparta na jednej)
      Format F Format
      komórki/wiersza/kolumny Format
      formatu to
      ch1 cyfry ch2
      ch1 to
      D
      domyślnie
      C
      waluta
      E
      wykładnik
      F
      stały
      G
      ogólny
      $
      dolar
      *
      wykres
      %
      procent
      cyfr to liczba cyfr po przecinku
      ch2 to wyrównanie
      D
      domyślny
      C
      środek
      G
      standardowy
      L
      lewy
      R
      prawy
      -
      ignorowany
      Wypełnienie
      X
      Format D
      Domyślny format.
      Format formatu to
      ch1 cyfry ch2
      ch1 to
      C
      waluta
      E
      wykładnik
      F
      stały
      G
      ogólne
      $
      dolar
      *
      wykres
      % cyfry
      procentowe
      to liczba cyfr po przecinku
      ch2 to wyrównanie
      C
      środek
      G
      standardowa
      L
      lewa
      R
      prawa
      -
      ignorowana
      X
      wypełnij
      E
      pokaż formuły
      K
      pokaż przecinki
      W kolumna1 kolumna2 szerokość
      ustaw szerokości kolumn
      N rozmiar czcionki rozmiar czcionki
      do użycia
      indeksu P
      format komórki Excel, numer rekordu P (np. P0 oznacza pierwszy rekord P, czyli zwykle deklarowane jako styl stylu P;PGeneral
      S
      Następujące
      znaki mogą być częścią stylu
      I
      kursywa
      D
      pogrubienie
      T
      linia siatki u góry
      L
      linia siatki po lewej
      B
      linia siatki u dołu
      R
      linia siatki po prawej stronie
      S
      zacienione tło
      H
      Jeśli jest obecny, nie pokazuj nagłówków wierszy/kolumn
      Jeśli nie ma go w całym pliku, pokaż nagłówki wierszy/kolumn
      G
      Jeśli jest obecny, nie pokazuj domyślnych linii siatki
      Jeśli nie ma go w całym pliku, pokaż domyślne linie siatki
    • Kompatybilne pola:
      Przynajmniej jedno z ;X, ;Y, ;C, ;R, ;D, ;E, ;K, ;W, ;P, ;H lub ;G musi być obecne.
      Jeśli obecne jest ;X lub ;Y, muszą być obecne zarówno ;X, jak i ;Y. (To ustawia format komórki.)
      Jeśli obecne jest ;X, to ;R, ;C, ;E, ;K, ;W, ;N, ;H, ;G musi być nieobecne.
      Jeśli obecne jest ;R, to ;X, ;Y, ;C, ;E, ;K, ;W, ;N, ;H, ;G musi być nieobecne. (To ustawia domyślny format wiersza.)
      Jeśli obecne jest ;C, to ;X, ;Y, ;R, ;E, ;K, ;W, ;N, ;H, ;G musi być nieobecne. (To ustawia domyślny format kolumny.)
      Jeśli obecne jest ;D, to ;X, ;Y, ;R, ;C musi być nieobecne. (To ustawia domyślny format arkusza kalkulacyjnego.)
      Jeśli ;X, ;Y, ;R, ;C są obecne, to ;P i/lub ;F i/lub ;S muszą być obecne.
  • O rekord
    • Użyj:
      Opcje
    • Możliwe pola:
      A iter delta
      Jeśli występuje, zezwól na iterację wartości
      Jeśli nie ma, odwołania cykliczne są niedozwolone.
      iter (maksymalna liczba iteracji)
      delta (test krokowy. Jeśli jest mniejszy, to zakończony.)
      Test zakończenia
      C w najbliższym poprzedzającym rekordzie C Arkusz
      P
      jest chroniony
      L
      używa odwołań trybu A1
      Nawet jeśli podano ;L odwołania R1C1 są używane w wyrażeniach pliku SYLK .
      M
      Jeśli występuje, użyj ręcznego przeliczenia.
      Jeśli nie ma, użyj automatycznego przeliczenia.
      E
      Arkusz makro.
      Powinno to pojawić się przed pierwszym pojawieniem się pola ;G lub ;F w rekordzie NN.
      To powinno pojawić się przed pierwszym rekordem C, który używa funkcji tylko makr. Wartość
      V
      wskazuje datę bazową używaną do obliczania wartości dat seryjnych
      0:1 styczeń 1900
      4:1 styczeń 1904
  • rekord NU
    • Użyj:
      podmiana nazwy pliku
      Jeśli obecne są rekordy NE, należy je poprzedzić.
    • Pola obowiązkowe:
      L nazwa pliku
      stara nazwa pliku
      F nazwa pliku
      nowa nazwa pliku
  • rekord NE
    • Użyj:
      link zewnętrzny
    • Pola obowiązkowe:
      E wyrażenie
      Obszar docelowy w arkuszu kalkulacyjnym
      F nazwa
      pliku Plik źródłowy
      S wyrażenie
      Obszar źródłowy na arkuszu zewnętrznym
  • rekord N.N
    • Użyj:
      Definiuje nazwy
      Bardziej wydajne, jeśli NN pojawia się przed użyciem nazwy.
    • Pola obowiązkowe:
      N nazwa
      nazwa
      E wyrażenie
      wyrażenie opisujące wartość nazwy
    • Możliwe pola:
      G ch1 ch2
      nazwa wykonywalna (makro) z aliasem klawisza
      K ch1 ch2
      zwykła nazwa z niewykorzystanymi aliasami komend
      F
      użyteczna jako funkcja
    • Kompatybilne pola:
      Jeśli występuje ;G, musi brakować ;K.
  • Rekord W
    • Zastosowanie:
      Definicje okien
  • Rekord NL
    • Zastosowanie:
      Zewnętrzny link do wykresu
  • Rekord E
    • Użycie:
      Koniec pliku.
      Musi być ostatni rekord.

Data i godzina są przechowywane jako wartości zmiennoprzecinkowe. Część całkowita to liczba dni od 1 stycznia 1900 (jeśli rekord O zawiera dyrektywę ;V0 określającą rok 1900 jako punkt wyjścia do obliczeń), ułamek to liczba sekund podzielona przez 86400 (60*60* 24, liczba sekund w ciągu dnia). Konwersji na czas uniksowy można dokonać odejmując różnicę między 1 stycznia 1970 a 1 stycznia 1900 (25 569 dni), a następnie mnożąc przez 86400; konwersja z czasu uniksowego na datetime SYLK odbywa się poprzez podzielenie wartości przez 86400 i dodanie 25569. Styl komórki musi być ustawiony na jakąś wartość formatującą datę, np. P;Pdd/mm/rrrr\ hh:mm:ss aby były wyświetlane poprawnie.

Eksporty plików .slk otwierane w programie Excel mają limit 255 znaków w komórce. To ograniczenie nie występuje w LibreOffice.

Linki zewnętrzne

  • Szczegółowe przykłady można również znaleźć tutaj

Składnię SYLK można znaleźć pod adresem:

i o:

Ograniczenia związane z odczytem i zapisem w Excelu: