Символическая ссылка ( 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) версиях Майкрософт Эксель. [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:
ID; PC; Y1; X1; K "Ряд 1"C; Y2; X1; K "Ряд 2"C; Y3; X1; K «Всего»С; У1; Х2; К11С; У2; Х2; К22С; У3; Х2; К33E
будет отображаться следующим образом при чтении соответствующей электронной таблицей:
Ряд 1 | 11 |
Ряд 2 | 22 |
Общее | 33 |
для числового форматирования
Форматирование двух десятичных цифр применяется к столбцу 2 с использованием
F; P2; C2
где P0 - общий, P1 - отсутствие десятичной дроби, P2 - 2 цифры, P3 имеет начальный знак $ с двумя десятичными точками, как определено ниже.
ID; PP; P ОбщиеP; 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 «Всего»С; У1; Х2; К11С; У2; Х2; К22С; Y3; X2; K0; ER1C2 + R2C2F; P2; C2E
будет отображаться следующим образом при чтении соответствующей электронной таблицей:
Ряд 1 | 11.00 |
Ряд 2 | 22.00 |
Общее | 33.00 |
для ширины столбца
F;W< n1 > [S] < n2 > [S] < n3 >
определяет ширину группы столбцов:
- [S]
- одно пространство
- первый столбец
- последний столбец
- ширина столбцов в количестве знаков
Например: Добавление этих кодов SYLK изменит ширину столбца 1 и 2 до 20 и 30 соответственно.
F; W1 1 20F; W2 2 30
свойства форматирования ячеек
F;
- один из следующих односимвольных кодов форматирования:
- D
- По умолчанию
- C
- непрерывное отображение между ячейками
- E
- научное возведение в степень
- F
- фиксированная десятичная точка
- грамм
- общий формат
- $
- $ и 2 десятичных знака в начале
- *
- гистограмма, одна звездочка на единицу (5 будет *****)
- <п>
- количество цифр.
- один из следующих односимвольных кодов выравнивания:
- D
- По умолчанию
- C
- центр
- грамм
- общие (текст слева, цифры справа)
- L
- левое выравнивание
- р
- правильно оправдать
Например: следующий код SYLK демонстрирует свойства форматирования ячеек:
ID; P P; P Общие C; Y1; X1; K "Выровнять по левому краю строки 1" F; P0; FG0L C; Y2; X1; K «Строка 2 с выравниванием по правому краю» F; P0; FG0R C; Y3; X1; K "Итого в центре" F; P0; FG0C С; У1; Х2; К11 С; У2; Х2; К22 С; Y3; X2; K0; ER1C2 + R2C2 F; Y1; X2; FF2L F; Y2; X2; FF2R F; Y3; X2; F $ 2C F; W1 2 25 E
SYLK синтаксис
SYLK_file :: =Запись +Запись :: =Поле RecordType * новая строка
- Идентификационная запись
- Использовать:
- Заголовок для определения типа и создателя электронной таблицы.
- Должна быть первая запись в файле.
- Тип записи:
- Я БЫ
- Поля, обязательные для заполнения:
- 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 присутствует в записи идентификатора, то; P должно отсутствовать.
- Если; N отсутствует в ID-записи, то; N должно отсутствовать.
- Если присутствует; M, то; E должно отсутствовать.
- Если; I присутствует,; K и; E должны отсутствовать
- Использовать:
- P запись
- Использовать:
- Формат ячейки
- Если присутствуют 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.
- Использовать:
- O запись
- Использовать:
- Параметры
- Возможные поля:
- Итера дельта
- Если присутствует, разрешить итерацию значения
- Если они отсутствуют, циклические ссылки не допускаются.
- iter (максимальное количество итераций)
- дельта (пошаговый тест. Если меньше, то закончено.)
- C
- завершение теста на ближайшей предыдущей записи C
- п
- лист защищен
- L
- использовать ссылки режима A1
- Даже если задано; L, ссылки R1C1 используются в выражениях файлов SYLK.
- M
- Если есть, используйте ручной пересчет.
- Если отсутствует, используйте автоматический пересчет.
- E
- Макро-лист.
- Это должно появиться перед первым появлением поля; G или; F в записи NN.
- Это должно появиться перед первой записью C, которая использует только макрос-функцию.
- Значение V
- значение указывает базовую дату, используемую для расчета значений серийной даты
- 0: 1 января 1900 г.
- 4: 1 января 1904 г.
- Использовать:
- Запись НУ
- Использовать:
- подстановка имени файла
- Если присутствуют записи 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/
- ^ a b Стэн Хегт (30.10.2019). «Злоупотребление файловым форматом SYLK» . outflank.nl . Проверено 14 декабря 2019 .
- ^ " " SYLK: недопустимый формат файла "сообщение об ошибке при открытии файла" . Проверено 18 августа 2015 года .
- ^ «Импорт CSV в Excel возвращает ошибку формата файла SYLK» . Проверено 18 августа 2015 года .