Символическая ссылка (SYLK) - Symbolic Link (SYLK) - Wikipedia
Символическая ссылка (SYLK) это Microsoft формат файла, обычно используемый для обмена данными между приложениями, в частности электронные таблицы. Файлы SYLK обычно имеют .slk
суффикс. Состоит только из отображаемых ANSI символов, он может быть легко создан и обработан другими приложениями, такими как базы данных.
Microsoft не публикует спецификацию SYLK. Варианты формата поддерживаются Мультиплан, Майкрософт Эксель, Microsoft Работает, OpenOffice.org, LibreOffice[1] и Gnumeric. Формат был представлен в 1980-х годах и не претерпевал изменений с 1986 года.[2].
Часто встречающееся (и ложное) «появление» файла SYLK происходит, когда значение, разделенное запятыми Формат (CSV) сохраняется с именем первого поля «ID» без кавычек, то есть первые два символа соответствуют первым двум символам формата файла SYLK. Microsoft Excel (по крайней мере, до Office 2016) будет выдавать вводящие в заблуждение сообщения об ошибках, связанные с форматом файла, например «Файл, который вы пытаетесь открыть, x.csv, имеет формат, отличный от указанного в файле. расширение...".[3][4]
SYLK, как известно, вызывает безопасность проблемы, так как это позволяет злоумышленнику запустить произвольный код, дает возможность замаскировать вектор атаки под безобидным внешним видом файла CSV и по-прежнему включен по умолчанию в последних (2016) версиях Microsoft Excel[2].
Ограничения
SYLK не поддерживает Unicode. Даже если файл SYLK создается приложением, поддерживающим Unicode (например, Microsoft Excel), файл SYLK будет закодирован в формате текущей системы. ANSI кодовая страница, а не в Юникоде. Если приложение содержало символы, которые отображались в Unicode, но не имели кодовой точки в кодовой странице текущей системы, они будут преобразованы в вопросительные знаки ('?') В файле SYLK.
Точка с запятой обрабатывается как разделитель полей в SYLK, поэтому не может использоваться без экранирования в значениях данных. Если символьная строка в файле SYLK должна содержать точку с запятой (;), тогда она должна быть предварена другой точкой с запятой, чтобы строка выглядела, например, как «WIDGET ;; AXC1254». MS Excel удалит первую точку с запятой при импорте, и элемент данных будет отображаться как «WIDGET; AXC1254».
Каждая строка входного файла SYLK не должна быть длиннее 260 символов. В противном случае Microsoft Excel выдаст сообщение об ошибке и пропустит загрузку слишком длинной строки.
Пример кода SYLK
В качестве примера приведем следующий код SYLK в текстовом файле с расширением .slk:
ID; PC; Y1; X1; K "Ряд 1" C; Y2; X1; K "Ряд 2" C; Y3; X1; K "Итого" C; Y1; X2; K11C; Y2; X2; K22C; Y3; X2; K33E
будет отображаться следующим образом при чтении соответствующей электронной таблицей:
Ряд 1 | 11 |
Ряд 2 | 22 |
Общий | 33 |
для числового форматирования
Форматирование двух десятичных цифр применяется к столбцу 2 с помощью
F; P2; C2
где P0 - общее, P1 - отсутствие десятичной дроби, P2 - 2 цифры, P3 имеет начальный знак $ с двумя десятичными точками, как определено ниже.
ID; PP; PGeneralP; P _ (* #, ## 0 _) ;; _ (* - #, ## 0 _) ;; _ (* "-" _) ;; _ (@_) P; P _ (* #, ## 0.00 _) ;; _ (* (#, ## 0.00 ) ;; _ (* "-" ?? _) ;; _ (@_) P; P _ ("$" * #, ## 0.00 _) ;; _ ("$" * (#, ## 0.00 ) ;; _ ("$" * "-" ?? _) ;; _ (@_) C; Y1; X1; K "Ряд 1" C; Y2; X1; K "Ряд 2" C; Y3; X1; K "Итого" C; Y1; X2; K11C; Y2; X2; K22C; Y3; X2; K0; ER1C2 + R2C2F; P2; C2E
будет отображаться следующим образом при чтении соответствующей электронной таблицей:
Ряд 1 | 11.00 |
Ряд 2 | 22.00 |
Общий | 33.00 |
для ширины столбца
F; W
определяет ширину группы столбцов:
- [S]
- одно пространство
- < n1 >
- первый столбец
- < n2 >
- последний столбец
- < n3 >
- ширина столбцов в количестве знаков
Например: Добавление этих кодов SYLK изменит ширину столбца 1 и 2 до 20 и 30 соответственно.
F; W1 1 20F; W2 2 30
свойства форматирования ячеек
F;
- < cl >
- один из следующих односимвольных кодов форматирования:
- D
- дефолт
- C
- непрерывное отображение между ячейками
- E
- научное возведение в степень
- F
- фиксированная десятичная точка
- грамм
- общий формат
- $
- $ и 2 десятичных знака в начале
- *
- гистограмма, одна звездочка на единицу (5 будет *****)
- < n >
- количество цифр.
- < c2 >
- один из следующих односимвольных кодов выравнивания:
- D
- дефолт
- C
- центр
- грамм
- общие (текст слева, цифры справа)
- L
- левое выравнивание
- р
- правильно оправдать
Например: следующий код SYLK демонстрирует свойства форматирования ячеек:
ID; PP; PG Общие C; Y1; X1; K "Выравнивание по левому краю строки 1" F; P0; FG0L C; Y2; X1; K "Выравнивание по правому краю ряда 2" F; P0; FG0R C; Y3; X1; K "Итого в центре "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
SYLK синтаксис
SYLK_file :: = Запись + Запись :: = Поле Тип записи * новая строка
- Я БЫ записывать
- Использовать:
- Заголовок для определения типа и создателя таблицы.
- Должна быть первая запись в файле.
- Тип записи:
- Я БЫ
- Поля, обязательные для заполнения:
- P программа
- создатель файлов
- возможные создатели включают:
- MP (мультиплан)
- XL (Excel)
- возможные создатели включают:
- создатель файлов
- Возможные поля:
- N
- Если присутствует, файл использует защиту ячеек в стиле N
- Если отсутствует, файл использует; Защита ячейки стиля P
- E
- Если присутствует, записи NE являются избыточными
- Если отсутствует, записи NE не являются избыточными
- Использовать:
- B записывать
- Использовать:
- Сообщает количество строк и столбцов в электронной таблице.
- Рекомендуется ставить перед записями C и F.
- Тип записи:
- B
- Поля, обязательные для заполнения:
- X столбцов
- сообщает максимальное количество столбцов
- Y строк
- сообщает максимальное количество строк
- Использовать:
- C записывать
- Использовать:
- Содержимое ячейки
- Тип записи:
- C
- Поля, обязательные для заполнения:
- Столбец X
- позиция столбца (на основе единицы)
- Возможные поля:
- Y ряд
- позиция строки (по одной). Если не указано, используется последнее встреченное значение.
- E выражение
- выражение для ячейки
- Значение K
- значение ячейки
- Столбец C
- ссылка на столбец
- R ряд
- ссылка на строку
- грамм
- определяет общую ценность
- D
- определяет общее выражение
- S
- ссылается на общее значение или общее выражение
- N
- Если присутствует, ячейка не защищена.
- Если отсутствует и; N присутствует в записи идентификатора, ячейка защищена.
- п
- Если присутствует, ячейка защищена.
- Если отсутствует и; N отсутствует в записи идентификатора, ячейка не защищена.
- ЧАС
- Если присутствует, ячейка скрыта.
- Если отсутствует, ячейка не скрывается.
- Выражение M
- матричное выражение от (X, Y) до (C, R)
- я
- внутри матрицы
- Совместимые поля:
- Если; 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
- Спецификация формата ячеек в стиле Excel
- Использовать:
- F записывать
- Использовать:
- Формат
- Если присутствуют P-записи, следует за ними.
- Возможные поля:
- Столбец X
- столбец (один на основе)
- Y ряд
- ряд (по одному)
- Столбец C
- столбец (один на основе)
- R ряд
- ряд (по одному)
- F формат
- Формат ячейки / строки / столбца
- Формат формата
- ch1 цифры ch2
- ch1 это
- D
- дефолт
- C
- валюта
- E
- показатель степени
- F
- фиксированный
- грамм
- Общее
- $
- доллар
- *
- график
- %
- процентов
- цифры - количество цифр после десятичной точки
- ch2 - это выравнивание
- D
- дефолт
- C
- центр
- грамм
- стандарт
- L
- оставили
- р
- верно
- -
- игнорируется
- Икс
- наполнять
- Формат D
- Формат по умолчанию.
- Формат формата
- ch1 цифры ch2
- ch1 это
- C
- валюта
- E
- показатель степени
- F
- фиксированный
- грамм
- Общее
- $
- доллар
- *
- график
- %
- процентов
- цифры - это количество цифр после десятичной точки
- ch2 - это выравнивание
- C
- центр
- грамм
- стандарт
- L
- оставили
- р
- верно
- -
- игнорируется
- Икс
- наполнять
- E
- показать формулы
- K
- показать запятые
- W col1 col2 ширина
- установить ширину столбца
- Размер N fontid
- шрифт для использования
- Индекс P
- Формат ячейки Excel, номер P-записи (например, P0 означает первую P-запись, которая обычно объявляется как P; PG Общие
- S стиль
- стиль
- Следующие символы могут быть частью стиля
- я
- курсив
- D
- смелый
- Т
- верхняя часть линии сетки
- L
- линия сетки слева
- B
- нижняя часть линии сетки
- р
- линия сетки справа
- 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.
- Использовать:
- О записывать
- Использовать:
- Опции
- Возможные поля:
- Итера дельта
- Если присутствует, разрешить итерацию значения
- Если они отсутствуют, циклические ссылки не допускаются.
- iter (максимальное количество итераций)
- дельта (пошаговый тест. Если меньше, то закончено.)
- C
- завершение теста на ближайшей к предыдущей записи C
- п
- лист защищен
- L
- использовать ссылки режима A1
- Даже если задано; L, ссылки R1C1 используются в выражениях файлов SYLK.
- M
- Если есть, используйте ручной пересчет.
- Если отсутствует, используйте автоматический пересчет.
- E
- Макро-лист.
- Это должно появиться перед первым появлением поля; G или; F в записи NN.
- Это должно появиться перед первой записью C, которая использует только макрос-функцию.
- Значение V
- значение указывает базовую дату, используемую для расчета значений серийной даты
- 0: 1 января 1900 г.
- 4: 1 января 1904 г.
- Использовать:
- NU записывать
- Использовать:
- подстановка имени файла
- Если присутствуют записи NE, они должны предшествовать им.
- Поля, обязательные для заполнения:
- L имя файла
- старое имя файла
- F имя файла
- новое имя файла
- Использовать:
- NE записывать
- Использовать:
- внешняя ссылка
- Поля, обязательные для заполнения:
- E выражение
- Целевая область в электронной таблице
- F имя файла
- Исходный файл
- S выражение
- Исходная область на внешнем листе
- Использовать:
- NN записывать
- Использовать:
- Определяет имена
- Более эффективно, если перед именем используется NN.
- Поля, обязательные для заполнения:
- N имя
- имя
- E выражение
- выражение, описывающее значение имени
- Возможные поля:
- G ch1 ch2
- исполняемое имя (макрос) с псевдонимом командной клавиши
- К ч1 ч2
- обычное имя с неиспользуемыми псевдонимами команд
- F
- можно использовать как функцию
- Совместимые поля:
- Если присутствует; G, то; K должно отсутствовать.
- Использовать:
- W записывать
- Использовать:
- Определения окон
- Использовать:
- NL записывать
- Использовать:
- Диаграмма внешняя ссылка
- Использовать:
- E записывать
- Использовать:
- Конец файла.
- Должна быть последняя запись.
- Использовать:
Дата и время хранятся как значение с плавающей запятой. Часть целого числа - это количество дней с 1 января 1900 года (если запись O содержит директиву; V0, определяющую 1900 в качестве отправной точки для вычислений), дробная часть - это количество секунд, деленное на 86400 (60 * 60 * 24, количество секунд в сутках). Преобразование во время unix может быть выполнено путем вычитания разницы между 1 января 1970 г. и 1 января 1900 г. (25 569 дней), а затем умножения на 86400; преобразование времени unix в SYLK datetime выполняется путем деления значения на 86400 и последующего добавления 25569. Стиль ячейки должен быть установлен на какое-либо значение форматирования даты, например P; Pdd / mm / yyyy hh: mm: ss
для правильного отображения.
Экспорт файла .slk, открытый в Excel, может содержать не более 255 символов. Этот предел отсутствует в LibreOffice.
внешняя ссылка
- Подробные примеры также можно найти на здесь
Синтаксис SYLK можно найти по адресу:
- Сводка Microsoft SYLK (см. также Злоупотребление форматом файла SYLK статью для некоторой полезной информации)
- Описание формата GFF: Microsoft SYLK
и по адресу:
Ограничения, связанные с чтением и сохранением в Excel:
Рекомендации
- ^ https://www.libreofficehelp.com/libreoffice-calc-supported-file-formats/
- ^ а б Стэн Хегт (30.10.2019). "Злоупотребление файловым форматом SYLK". outflank.nl. Получено 2019-12-14.
- ^ ""SYLK: недопустимый формат файла «сообщение об ошибке при открытии файла». Получено 18 августа, 2015.
- ^ "Импорт CSV в Excel возвращает ошибку формата файла SYLK". Получено 18 августа, 2015.