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)
- potencjalni twórcy to:
- kreator plików
- 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
- Użyj:
-
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
- Zastosowanie:
-
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
- Zastosowanie:
-
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
- Użyj:
-
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.
- Użyj:
-
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
- Użyj:
-
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
- Użyj:
-
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
- Użyj:
-
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.
- Użyj:
-
Rekord W
- Zastosowanie:
- Definicje okien
- Zastosowanie:
-
Rekord NL
- Zastosowanie:
- Zewnętrzny link do wykresu
- Zastosowanie:
-
Rekord E
- Użycie:
- Koniec pliku.
- Musi być ostatni rekord.
- Użycie:
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:
- Podsumowanie Microsoft SYLK (zobacz także artykuł Nadużywanie formatu pliku SYLK, aby uzyskać przydatne informacje)
- Podsumowanie formatu GFF: Microsoft SYLK
i o:
- często zadawane pytania dotyczące comp.apps.spreadsheets
- Porady programu Excel Konwersja znaczników daty i godziny w systemie Unix
Ograniczenia związane z odczytem i zapisem w Excelu: