Символическая ссылка (SYLK)
Расширение имени файла |
.slk |
---|---|
Тип интернет-СМИ | приложение/x-silk |
Разработано | Майкрософт |
Символическая ссылка ( SYLK ) — это формат файлов Microsoft, обычно используемый для обмена данными между приложениями, в частности электронными таблицами . Файлы SYLK обычно имеют .slk
суффикс. Состоящий только из отображаемых символов ANSI , он может легко создаваться и обрабатываться другими приложениями, например базами данных .
Microsoft никогда не публиковала спецификацию SYLK. Варианты формата поддерживаются Multiplan , Microsoft Excel , Microsoft Works , OpenOffice.org , LibreOffice. [1] и Гнумерик . Формат был введен в 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. Если приложение содержало символы, отображаемые в Юникоде, но не имеющие кодовой точки на кодовой странице текущей системы, они будут преобразованы в вопросительные знаки ('?') в файле SYLK.
Точка с запятой рассматривается в SYLK как разделитель полей, поэтому ее нельзя использовать в значениях данных без экранирования. Если строка символов в файле SYLK должна содержать точку с запятой (;), то перед ней должна стоять еще одна точка с запятой, чтобы строка выглядела, например, как «WIDGET;;AXC1254». MS Excel удалит первую точку с запятой при импорте, и элемент данных будет отображаться как «WIDGET;AXC1254».
Каждая строка входного файла SYLK не должна превышать 260 символов. В противном случае Microsoft Excel выдаст сообщение об ошибке и пропустит загрузку слишком длинной строки.
Пример кода SYLK
[ редактировать ]В качестве примера приведен следующий код SYLK в текстовом файле с расширением .slk:
ID;P C;Y1;X1;K"Row 1" C;Y2;X1;K"Row 2" C;Y3;X1;K"Total" C;Y1;X2;K11 C;Y2;X2;K22 C;Y3;X2;K33 E
будет отображаться следующим образом при чтении соответствующей электронной таблицы:
Ряд 1 | 11 |
Ряд 2 | 22 |
Общий | 33 |
для числового форматирования
[ редактировать ]Форматирование двух десятичных цифр применяется к столбцу 2 с помощью
F;P2;C2
где P0 — общий, P1 — без десятичной дроби, P2 — для двух цифр, P3 имеет ведущий знак $ с двумя десятичными точками, как определено ниже.
ID;P P;PGeneral P;P_(* #,##0_);;_(* \-#,##0_);;_(* "-"_);;_(@_) P;P_(* #,##0.00_);;_(* \(#,##0.00\);;_(* "-"??_);;_(@_) P;P_("$"* #,##0.00_);;_("$"* \(#,##0.00\);;_("$"* "-"??_);;_(@_) C;Y1;X1;K"Row 1" C;Y2;X1;K"Row 2" C;Y3;X1;K"Total" C;Y1;X2;K11 C;Y2;X2;K22 C;Y3;X2;K0;ER1C2+R2C2 F;P2;C2 E
будет отображаться следующим образом при чтении соответствующей электронной таблицы:
Ряд 1 | 11.00 |
Ряд 2 | 22.00 |
Общий | 33.00 |
для ширины столбца
[ редактировать ]F;W⟨n1⟩[S]⟨n2⟩[S]⟨n3⟩
определяет ширину группы столбцов:
- [С]
- одно место
- ⟨n1⟩
- первый столбец
- ⟨n2⟩
- последний столбец
- ⟨n3⟩
- ширина столбцов в количестве символов
Например: добавление этих кодов SYLK приведет к изменению ширины столбца 1 и 2 до 20 и 30 соответственно.
F;W1 1 20 F;W2 2 30
свойства форматирования ячеек
[ редактировать ]F;⟨cl⟩⟨n⟩⟨c2⟩
- ⟨кл⟩
- один из следующих односимвольных кодов форматирования:
- Д
- по умолчанию
- С
- непрерывное отображение между ячейками
- И
- научное возведение в степень
- Ф
- фиксированная десятичная точка
- Г
- общий формат
- $
- ведущий $ и 2 десятичных знака
- *
- гистограмма, одна звездочка на единицу (5 будет *****)
- ⟨н⟩
- количество цифр.
- ⟨c2⟩
- один из следующих односимвольных кодов выравнивания:
- Д
- по умолчанию
- С
- центр
- Г
- общий(текст слева, цифры справа)
- л
- левое оправдание
- Р
- правильное оправдание
Например: следующий код SYLK демонстрирует свойства форматирования ячеек:
ID;P P;PGeneral C;Y1;X1;K"Row 1 Left Justify" F;P0;FG0L C;Y2;X1;K"Row 2 Right Justify" F;P0;FG0R C;Y3;X1;K"Total at Center" 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
Синтаксис SYLK
[ редактировать ]SYLK_file ::= Record + Record ::= RecordType Field* newline
- идентификационная запись
- Использовать:
- Заголовок для идентификации типа и создателя таблицы.
- Должна быть первой записью в файле.
- Тип записи:
- ИДЕНТИФИКАТОР
- Обязательные поля:
- P-программа
-
- создатель файла
- Возможные создатели:
- МП (Мультиплан)
- XL (Эксель)
- Возможные создатели:
- создатель файла
- Возможные поля:
- Н
- Если присутствует, файл использует защиту ячейки в стиле ;N.
- Если он отсутствует, файл использует защиту ячейки в стиле P.
- И
- Если они присутствуют, записи NE являются избыточными.
- Если они отсутствуют, записи NE не являются избыточными.
- Использовать:
- Б- запись
- Использовать:
- Сообщает количество строк и столбцов в электронной таблице.
- Рекомендуется ставить перед записями C и F.
- Тип записи:
- Б
- Обязательные поля:
- X столбцов
- сообщает максимальное количество столбцов
- Y строк
- сообщает максимальное количество строк
- Использовать:
- C- запись
- Использовать:
- Содержимое ячейки
- Тип записи:
- С
- Обязательные поля:
- X-колонка
- позиция столбца (на основе одного)
- Возможные поля:
- Y ряд
- позиция строки (на основе одной). Если этот параметр опущен, используется последнее обнаруженное значение.
- E-выражение
- выражение для клетки
- значение К
- значение ячейки
- Столбец С
- ссылка на столбец
- 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 ряд
- строка (на основе одной)
- Столбец С
- столбец (на основе одного)
- R ряд
- строка (на основе одной)
- Формат F
- Формат ячейки/строки/столбца
- Формат формата
- цифры канала 1 канала 2
- ch1 это
- Д
- по умолчанию
- С
- валюта
- И
- показатель степени
- Ф
- зафиксированный
- Г
- общий
- $
- доллар
- *
- график
- %
- процент
- цифры - это количество цифр после десятичной точки
- ch2 — выравнивание
- Д
- по умолчанию
- С
- центр
- Г
- стандартный
- л
- левый
- Р
- верно
- -
- игнорируется
- Х
- наполнять
- Формат D
- Формат по умолчанию.
- Формат формата
- цифры канала 1 канала 2
- ch1 это
- С
- валюта
- И
- показатель степени
- Ф
- зафиксированный
- Г
- общий
- $
- доллар
- *
- график
- %
- процент
- цифры - это количество цифр после десятичной точки
- 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.
- Использовать:
- О запись
- Использовать:
- Параметры
- Возможные поля:
- Гитер дельта
- Если присутствует, разрешить итерацию значения
- Если они отсутствуют, циклические ссылки не допускаются.
- iter (максимальное количество итераций)
- дельта (пошаговый тест. Если меньше, то закончено.)
- С
- тест завершения на ближайшей предыдущей записи C
- П
- лист защищен
- л
- используйте ссылки на режим A1
- Даже если указан ;L, в выражениях файла SYLK используются ссылки R1C1.
- М
- Если присутствует, используйте ручной пересчет.
- Если его нет, используйте автоматический перерасчет.
- И
- Лист макроса.
- Оно должно появиться до первого появления поля ;G или ;F в записи NN.
- Это должно появиться перед первой записью C, которая использует функцию только для макросов.
- Значение В
- значение указывает базовую дату, используемую для расчета значений серийных дат.
- 0:1 января 1900 г.
- 4:1 января 1904 г.
- Использовать:
- НЕТ записи
- Использовать:
- подмена имени файла
- Если записи NE присутствуют, они должны предшествовать им.
- Обязательные поля:
- L имя файла
- старое имя файла
- F имя файла
- новое имя файла
- Использовать:
- северо-восточная запись
- Использовать:
- внешняя ссылка
- Обязательные поля:
- E-выражение
- Целевая область в таблице
- F имя файла
- Исходный файл
- S-выражение
- Исходная область на внешнем листе
- Использовать:
- НН запись
- Использовать:
- Определяет имена
- Более эффективно, если NN появляется перед использованием имени.
- Обязательные поля:
- имя Н
- имя
- E-выражение
- выражение, описывающее значение имени
- Возможные поля:
- Г ч1 ч2
- исполняемое имя (макрос) с псевдонимом командной клавиши
- К ч1 ч2
- обычное имя с неиспользуемыми псевдонимами команд
- Ф
- можно использовать как функцию
- Совместимые поля:
- Если ;G присутствует, ;K должно отсутствовать.
- Использовать:
- W запись
- Использовать:
- Определения окон
- Использовать:
- Нидерландов запись
- Использовать:
- Диаграмма внешняя ссылка
- Использовать:
- электронная запись
- Использовать:
- Конец файла.
- Должно быть, последняя запись.
- Использовать:
Дата и время сохраняются как значения с плавающей запятой. Целая часть — это количество дней с 1 января 1900 года (если запись O содержит директиву ;V0, указывающую 1900 в качестве отправной точки для вычислений), дробная часть — это количество секунд, разделенное на 86400 (60*60* 24, количество секунд в сутках). Преобразование в время Unix можно выполнить, вычитая разницу между 1 января 1970 года и 1 января 1900 года (25 569 дней), а затем умножая на 86 400; преобразование времени unix в дату и время SYLK выполняется путем деления значения на 86400 и последующего добавления 25569. В качестве стиля ячейки должно быть установлено некоторое значение форматирования даты, например P;Pdd/mm/yyyy\ hh:mm:ss
чтобы отображалось правильно.
Экспорт файлов .slk, открытый с помощью Excel, имеет ограничение в 255 символов в ячейке. Этого ограничения нет в LibreOffice.
Внешние ссылки
[ редактировать ]- Подробные примеры также можно найти здесь.
Синтаксис SYLK можно найти по адресу:
- Сводка Microsoft SYLK ( Злоупотребление форматом файла SYLK» ) полезную информацию см. также в статье «
- Сводка формата GFF: Microsoft SYLK
и по адресу:
- Часто задаваемые вопросы по comp.apps.spreadsheets
- Советы по Excel Преобразование меток даты и времени Unix
Ограничения, связанные с чтением и сохранением в Excel:
Ссылки
[ редактировать ]- ^ «LibreOffice Calc — Поддерживаемые форматы файлов» . 12 ноября 2016 г.
- ^ Перейти обратно: а б Стэн Хегт (30 октября 2019 г.). «Злоупотребление форматом файла SYLK» . Outflank.nl . Проверено 14 декабря 2019 г.
- ^ « Сообщение об ошибке «SYLK: формат файла недействителен» при открытии файла» . Проверено 18 августа 2015 г.
- ^ «Импорт Excel CSV возвращает ошибку формата файла SYLK» . 9 января 2012 года . Проверено 18 августа 2015 г.