Символическая ссылка (SYLK)

Символическая ссылка (SYLK)
Расширение имени файла
.slk
Тип интернет-СМИприложение/x-sylk
РазработаноМайкрософт

Символическая ссылка ( SYLK ) — это формат файла Microsoft, который обычно используется для обмена данными между приложениями, в частности электронными таблицами . Файлы SYLK обычно имеют .slkсуффикс. Состоящий только из отображаемых символов ANSI , он может быть легко создан и обработан другими приложениями, такими как базы данных .

Microsoft никогда не публиковала спецификацию SYLK. Варианты формата поддерживаются Multiplan , Microsoft Excel , Microsoft Works , 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. Если приложение содержало символы, которые можно было бы отобразить в Unicode, но не имеющие кодовой точки в кодовой странице текущей системы, они будут преобразованы в вопросительные знаки ('?') в файле SYLK.

Точка с запятой рассматривается как разделитель полей в SYLK, поэтому не может использоваться без экранирования в значениях данных. Если строка символов в файле SYLK должна содержать точку с запятой (;), то перед ней должна стоять другая точка с запятой, чтобы строка выглядела, например, как "WIDGET;;AXC1254". MS Excel удалит первую точку с запятой при импорте, и элемент данных будет выглядеть как "WIDGET;AXC1254".

Каждая строка входного файла SYLK не должна быть длиннее 260 символов. В противном случае Microsoft Excel выдаст сообщение об ошибке и пропустит загрузку слишком длинной строки.

Пример кода SYLK

В качестве примера приведем следующий код SYLK в текстовом файле с расширением .slk:

ИД;ПC;Y1;X1;K"Ряд 1"C;Y2;X1;K"Ряд 2"C;Y3;X1;K"Всего"С;Y1;X2;K11С;Y2;X2;K22С;Y3;X2;K33Э

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

Ряд 111
Ряд 222
Общий33

для числового форматирования

Форматирование 2 десятичных знаков применяется к столбцу 2 с помощью

Ф;П2;С2

где P0 — общее значение, P1 — без десятичной точки, P2 — с 2 цифрами, P3 имеет начальный знак $ с 2 десятичными точками, как определено ниже.

ИД;ПP;PОбщееП;П_(* #,##0_);;_(* \-#,##0_);;_(* "-"_);;_(@_)П;П_(* #,##0.00_);;_(* \(#,##0.00\);;_(* "-"??_);;_(@_)П;П_("$"* #,##0.00_);;_("$"* \(#,##0.00\);;_("$"* "-"??_);;_(@_)C;Y1;X1;K"Ряд 1"C;Y2;X1;K"Ряд 2"C;Y3;X1;K"Всего"С;Y1;X2;K11С;Y2;X2;K22С;Y3;X2;K0;ER1C2+R2C2Ф;П2;С2Э

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

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

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

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

[С]
одно место
⟨n1⟩
первый столбец
⟨n2⟩
последний столбец
⟨n3⟩
ширина столбцов в количестве символов

Например: добавление этих кодов SYLK изменит ширину столбцов 1 и 2 до 20 и 30 соответственно.

Ж;Н1 1 20Ж;В2 2 30

свойства форматирования ячеек

Ф; ⟨кл⟩ ⟨н⟩ ⟨к2⟩
⟨cl⟩
один из следующих односимвольных кодов форматирования:
Д
по умолчанию
С
непрерывный кросс-клеточный дисплей
Э
научное возведение в степень
Ф
фиксированная десятичная точка
Г
общий формат
$
начальный $ и 2 десятичных знака
*
столбчатая диаграмма, одна звездочка на единицу (5 будет *****)
⟨н⟩
количество цифр.
⟨c2⟩
один из следующих 1-символьных кодов выравнивания:
Д
по умолчанию
С
центр
Г
общий(текстслева, числасправа)
Л
выравнивание по левому краю
Р
правильно выравнивать

Например: следующий код SYLK демонстрирует свойства форматирования ячеек:

ИД;П P;PОбщее C;Y1;X1;K"Строка 1, выравнивание по левому краю" Ф;П0;ФГ0Л C;Y2;X1;K"Строка 2, выравнивание по правому краю" Ф;П0;ФГ0Р C;Y3;X1;K"Всего в центре" Ф;П0;ФГ0С С;Y1;X2;K11 С;Y2;X2;K22 С;Y3;X2;K0;ER1C2+R2C2 Ф;Y1;X2;FF2L Ф;Y2;X2;FF2R Ф;Y3;X2;Ф$2С Ж;Н1 2 25 Э

Синтаксис SYLK

SYLK_файл ::=Запись +Запись ::=Поле RecordType* новая строка
  • запись удостоверения личности
    • Использовать:
      Заголовок, идентифицирующий тип и создателя электронной таблицы.
      Должна быть первой записью в файле.
    • Тип записи:
      ИДЕНТИФИКАТОР
    • Обязательные поля:
      П программа
      создатель файла
      • Возможные создатели включают:
        • МП (Мультиплан)
        • XL (Excel)
    • Возможные поля:
      Н
      Если присутствует, файл использует защиту ячеек в стиле ;N
      Если отсутствует, файл использует защиту ячеек в стиле ;P
      Э
      Если присутствуют, записи NE избыточны.
      Если записи NE отсутствуют, они не являются избыточными.
  • запись B
    • Использовать:
      Сообщает количество строк и столбцов в электронной таблице.
      Рекомендуется размещать его перед записями C и F.
    • Тип записи:
      Б
    • Обязательные поля:
      X столбцов
      сообщает максимальное количество столбцов
      Y-ряды
      сообщает максимальное количество строк
  • запись С
    • Использовать:
      Содержимое клетки
    • Тип записи:
      С
    • Обязательные поля:
      X-колонка
      позиция столбца (на основе единицы)
    • Возможные поля:
      Y-ряд
      позиция строки (на основе единицы). Если не указано, используется последнее встреченное значение.
      выражение E
      выражение для клетки
      Значение К
      значение ячейки
      C-колонка
      ссылка на столбец
      Ряд R
      ссылка на строку
      Г
      определяет общую ценность
      Д
      определяет общее выражение
      С
      ссылается на общее значение или общее выражение
      Н
      Если присутствует, ячейка не защищена.
      Если отсутствует и в записи идентификатора присутствует ;N, ячейка защищена.
      П
      Если присутствует, ячейка защищена.
      Если отсутствует и ;N отсутствует в записи идентификатора, ячейка не защищена.
      ЧАС
      Если присутствует, ячейка скрыта.
      Если отсутствует, ячейка не скрыта.
      М выражение
      матричное выражение из (X,Y) в (C,R)
      я
      внутри матрицы
    • Совместимые поля:
      Если присутствует ;G, ;E должен отсутствовать.
      Если присутствует ;G, то должен присутствовать ;K.
      Если присутствует ;D, то должно присутствовать ;E.
      Если присутствует ;S, ;E, ;K, ;G, ;D и ;M должны отсутствовать.
      Если присутствует ;S, должны присутствовать ;R и ;C. (Они определяют строку и столбец, из которых копируется общее значение/выражение.)
      Если в записи идентификатора присутствует ;N, ;P должен отсутствовать.
      Если ;N отсутствует в записи идентификатора, ;N должен отсутствовать.
      Если присутствует ;M, ;E должен отсутствовать.
      Если присутствует ;I, ;K и ;E должны отсутствовать
  • P запись
    • Использовать:
      Формат ячейки
      Если присутствуют записи F, предшествует им.
    • Обязательные поля:
      Форматирование P
      Спецификация формата ячейки в стиле Excel
  • F- запись
    • Использовать:
      Формат
      Если присутствуют записи P, следует за ними.
    • Возможные поля:
      X-колонка
      колонка (основанная на одной)
      Y-ряд
      ряд (один базовый)
      C-колонка
      колонка (основанная на одной)
      Ряд R
      ряд (один базовый)
      Формат F
      Формат ячейки/строки/столбца
      Формат формата -
      цифры ch1 ch2
      ch1 — это
      Д
      по умолчанию
      С
      валюта
      Э
      показатель степени
      Ф
      зафиксированный
      Г
      общий
      $
      доллар
      *
      график
      %
      процент
      digits — количество цифр после десятичной точки
      ch2 — выравнивание
      Д
      по умолчанию
      С
      центр
      Г
      стандартный
      Л
      левый
      Р
      верно
      -
      проигнорировано
      Х
      наполнять
      Формат D
      Формат по умолчанию.
      Формат формата -
      цифры ch1 ch2
      ch1 — это
      С
      валюта
      Э
      показатель степени
      Ф
      зафиксированный
      Г
      общий
      $
      доллар
      *
      график
      %
      процент
      digits — количество цифр после десятичной точки
      ch2 — выравнивание
      С
      центр
      Г
      стандартный
      Л
      левый
      Р
      верно
      -
      проигнорировано
      Х
      наполнять
      Э
      показать формулы
      К
      показывать запятые
      W col1 col2 ширина
      установить ширину столбцов
      N размер шрифта
      шрифт для использования
      Индекс P
      Формат ячейки Excel, номер записи P (например, P0 означает первую запись P, которая обычно объявляется как P;PGeneral
      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.
  • О запись
    • Использовать:
      Параметры
    • Возможные поля:
      G итер дельта
      Если присутствует, разрешить итерацию значения
      При отсутствии циклические ссылки не допускаются.
      iter (максимальное количество итераций)
      дельта (шаговый тест. Если меньше, то закончено.)
      С
      проверка завершения в ближайшей предыдущей записи C
      П
      лист защищен
      Л
      используйте ссылки режима A1
      Даже если указано ;L, в выражениях файла SYLK используются ссылки R1C1.
      М
      Если присутствует, используйте ручной пересчет.
      При отсутствии используйте автоматический перерасчет.
      Э
      Макро лист.
      Это должно произойти до первого появления поля ;G или ;F в записи NN.
      Она должна располагаться перед первой записью C, которая использует только макрофункцию.
      Значение V
      значение указывает базовую дату, используемую для расчета значений последовательной даты
      0:1 Январь 1900
      4:1 января 1904 г.
  • запись НУ
    • Использовать:
      замена имени файла
      Если присутствуют записи NE, они должны им предшествовать.
    • Обязательные поля:
      Имя файла L
      старое имя файла
      F имя файла
      новое имя файла
  • запись NE
    • Использовать:
      внешняя ссылка
    • Обязательные поля:
      выражение E
      Целевая область в электронной таблице
      F имя файла
      Исходный файл
      S-выражение
      Исходная область на внешнем листе
  • запись NN
    • Использовать:
      Определяет имена
      Более эффективно, если NN появляется перед использованием имени.
    • Обязательные поля:
      Имя N
      имя
      выражение E
      выражение, описывающее значение имени
    • Возможные поля:
      Г ч1 ч2
      имя исполняемого файла (макроса) с псевдонимом клавиши команды
      К ч1 ч2
      обычное имя с неиспользуемыми псевдонимами команд
      Ф
      можно использовать как функцию
    • Совместимые поля:
      Если присутствует ;G, ;K должен отсутствовать.
  • W запись
    • Использовать:
      Определения окон
  • запись NL
    • Использовать:
      Диаграмма внешняя ссылка
  • Электронная запись
    • Использовать:
      Конец файла.
      Должна быть последняя запись.

Дата и время хранятся как значение с плавающей точкой. Целая часть числа — это количество дней от 1 января 1900 года (если запись O содержит директиву ;V0, указывающую 1900 год в качестве начальной точки для вычислений), дробная часть — это количество секунд, деленное на 86400 (60*60*24, количество секунд в сутках). Преобразование во время unix можно выполнить, вычитая разницу между 1 января 1970 года и 1 января 1900 года (25 569 дней) и затем умножая на 86400; преобразование из времени unix в дату и время SYLK выполняется путем деления значения на 86400 и последующего прибавления 25569. Стиль ячейки должен быть установлен на некоторое значение форматирования даты, например, P;Pdd/mm/yyyy\ hh:mm:ssдля правильного отображения.

Экспорт файлов .slk, открытых в Excel, имеет ограничение в 255 символов в ячейке. Этого ограничения нет в LibreOffice.

  • Подробные примеры можно также найти здесь.

Синтаксис SYLK можно найти по адресу:

  • Краткое описание Microsoft SYLK (см. также статью Злоупотребление форматом файла SYLK для получения полезной информации)
  • Краткое описание формата GFF: Microsoft SYLK

и по адресу:

  • FAQ по comp.apps.spreadsheets
  • Советы по Excel: преобразование меток даты и времени Unix

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

  • Возможности Microsoft.com Excel

Ссылки

  1. ^ «LibreOffice Calc — Поддерживаемые форматы файлов». 12 ноября 2016 г.
  2. ^ ab Stan Hegt (2019-10-30). "Злоупотребление форматом файла SYLK". outflank.nl . Получено 2019-12-14 .
  3. ^ "Сообщение об ошибке "SYLK: Недопустимый формат файла" при открытии файла" . Получено 18 августа 2015 г.
  4. ^ "Импорт Excel CSV возвращает ошибку формата файла SYLK". 9 января 2012 г. Получено 18 августа 2015 г.
Взято с "https://en.wikipedia.org/w/index.php?title=Символическая_ссылка_(SYLK)&oldid=1167156062"