Символическая ссылка (SYLK) - Википедия - Symbolic Link (SYLK)

Символическая ссылка (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

будет отображаться следующим образом при чтении соответствующей электронной таблицей:

Ряд 111
Ряд 222
Общий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

будет отображаться следующим образом при чтении соответствующей электронной таблицей:

Ряд 111.00
Ряд 222.00
Общий33.00

для ширины столбца

F; W [S] [S] определяет ширину группы столбцов:

[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 можно найти по адресу:

и по адресу:

Ограничения, связанные с чтением и сохранением в Excel:

Рекомендации

  1. ^ https://www.libreofficehelp.com/libreoffice-calc-supported-file-formats/
  2. ^ а б Стэн Хегт (30.10.2019). "Злоупотребление файловым форматом SYLK". outflank.nl. Получено 2019-12-14.
  3. ^ ""SYLK: недопустимый формат файла «сообщение об ошибке при открытии файла». Получено 18 августа, 2015.
  4. ^ "Импорт CSV в Excel возвращает ошибку формата файла SYLK". Получено 18 августа, 2015.