stringtranslate.com

Enlace simbólico (SYLK)

El enlace simbólico ( SYLK ) es un formato de archivo de Microsoft que se utiliza normalmente para intercambiar datos entre aplicaciones, específicamente hojas de cálculo . Los archivos SYLK suelen tener un .slksufijo. Compuesto únicamente por caracteres ANSI visualizables , puede ser creado y procesado fácilmente por otras aplicaciones, como bases de datos .

Microsoft nunca ha publicado una especificación SYLK. Las variantes del formato son compatibles con Multiplan , Microsoft Excel , Microsoft Works , OpenOffice.org , LibreOffice [1] y Gnumeric . El formato se introdujo en la década de 1980 y no ha evolucionado desde 1986. [2]

Una "ocurrencia" común (y espuria) del archivo SYLK ocurre cuando se guarda un formato de valores separados por comas (CSV) con un primer nombre de campo sin comillas de "ID", es decir, los dos primeros caracteres coinciden con los dos primeros caracteres de el formato de archivo SYLK. Microsoft Excel (al menos para Office 2016) emitirá mensajes de error engañosos relacionados con el formato del archivo, como "El archivo que está intentando abrir, 'x.csv', tiene un formato diferente al especificado en el archivo". extensión...". [3] [4]

Se sabe que SYLK causa problemas de seguridad , ya que permite a un atacante ejecutar código arbitrario , ofrece la oportunidad de disfrazar el vector de ataque bajo la apariencia benigna de un archivo CSV y todavía está habilitado de forma predeterminada en versiones recientes (2016) de Microsoft Excel. [2]

Limitaciones

SYLK no es compatible con Unicode. Incluso si un archivo SYLK es creado por una aplicación que admite Unicode (por ejemplo, Microsoft Excel), el archivo SYLK se codificará en la página de códigos ANSI del sistema actual , no en Unicode. Si la aplicación contenía caracteres que se podían mostrar en Unicode pero no tenían ningún punto de código en la página de códigos del sistema actual, se convertirán en signos de interrogación ('?') en el archivo SYLK.

El punto y coma se trata como un separador de campos en SYLK, por lo que no se puede utilizar sin escape en los valores de datos. Si una cadena de caracteres en el archivo SYLK debe contener un punto y coma (;), entonces debe tener como prefijo otro punto y coma para que la cadena aparezca como, por ejemplo, "WIDGET;;AXC1254". MS Excel eliminará el primer punto y coma al importar y el elemento de datos aparecerá como "WIDGET;AXC1254".

Cada línea de un archivo de entrada SYLK no debe tener más de 260 caracteres. De lo contrario, Microsoft Excel emitirá un mensaje de error y omitirá la carga de la línea demasiado larga.

Código SYLK de muestra

Como ejemplo, el siguiente código SYLK en un archivo de texto con la extensión .slk:

ID;PC;Y1;X1;K"Fila 1"C;Y2;X1;K"Fila 2"C;Y3;X1;K"Total"C;Y1;X2;K11C;Y2;X2;K22C;Y3;X2;K33mi

se mostraría así cuando se lea en una hoja de cálculo adecuada:

para formato numérico

El formato de 2 dígitos decimales se aplica a la columna 2 usando

F;P2;C2

donde P0 es para General, P1 es para no decimal, P2 es para 2 dígitos, P3 tiene el signo $ inicial con 2 puntos decimales como se define a continuación.

ID;PP;PGeneralP;P_(* #,##0_);;_(* \-#,##0_);;_(* "-"_);;_(@_)P;P_(* #,##0.00_);;_(* \(#,##0.00\);;_(* "-"??_);;_(@_)P;P_("$"* #,##0.00_);;_("$"* \(#,##0.00\);;_("$"* "-"??_);;_ (@_)C;Y1;X1;K"Fila 1"C;Y2;X1;K"Fila 2"C;Y3;X1;K"Total"C;Y1;X2;K11C;Y2;X2;K22C;Y3;X2;K0;ER1C2+R2C2F;P2;C2mi

se mostraría así cuando se lea en una hoja de cálculo adecuada:

para ancho de columna

F;W⟨n1⟩[S]⟨n2⟩[S]⟨n3⟩define los anchos de un grupo de columnas:

[S]
un espacio
⟨n1⟩
la primera columna
⟨n2⟩
la última columna
⟨n3⟩
el ancho de las columnas en número de caracteres

Por ejemplo: agregar estos códigos SYLK ajustará el ancho de las columnas 1 y 2 a 20 y 30 respectivamente.

F;W1 1 20F;W2 2 30

propiedades de formato de celda

F; ⟨cl⟩ ⟨n⟩ ⟨c2⟩
⟨cl⟩
uno de los siguientes códigos de formato de 1 carácter:
D
por defecto
C
visualización continua entre celdas
mi
exponenciación científica
F
punto decimal fijo
GRAMO
formato general
$
$ inicial y 2 decimales
*
gráfico de barras, un asterisco por unidad (5 sería *****)
⟨norte⟩
el número de dígitos.
⟨c2⟩
uno de los siguientes códigos de alineación de 1 carácter:
D
por defecto
C
centro
GRAMO
general (texto a la izquierda, números a la derecha)
l
justificar a la izquierda
R
justificar correctamente

Por ejemplo: el siguiente código SYLK demuestra las propiedades de formato de celda:

ID;P P;PGeneral C;Y1;X1;K"Fila 1 justificada a la izquierda" F;P0;FG0L C;Y2;X1;K"Fila 2 justificada a la derecha" F;P0;FG0R C;Y3;X1;K"Total en el centro" 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 mi

sintaxis SYLK

Archivo_SYLK ::=Grabar +Registro ::=Campo RecordType* nueva línea

La fecha y la hora se almacenan como un valor de punto flotante. La parte del número entero es un número de días desde el 1 de enero de 1900 (si el registro O contiene la directiva ;V0, especificando 1900 como punto de partida para los cálculos), la fracción es el número de segundos dividido por 86400 (60*60* 24, número de segundos en un día). La conversión a hora Unix se puede realizar restando la diferencia entre el 1 de enero de 1970 y el 1 de enero de 1900 (25.569 días) y luego multiplicando por 86.400; la conversión de hora Unix a fecha y hora SYLK se realiza dividiendo el valor entre 86400 y luego sumando 25569. El estilo de celda debe establecerse en algún valor de formato de fecha, por ejemplo, P;Pdd/mm/yyyy\ hh:mm:sspara que se muestre correctamente.

Las exportaciones de archivos .slk abiertos con Excel tienen un límite de 255 caracteres por celda. Este límite no está presente en LibreOffice.

enlaces externos

La sintaxis de SYLK se puede encontrar en:

y en:

Límites relacionados con la lectura y el guardado con Excel:

Referencias

  1. ^ "LibreOffice Calc: formatos de archivo admitidos". 12 de noviembre de 2016.
  2. ^ ab Stan Hegt (30 de octubre de 2019). "Abusar del formato de archivo SYLK". flanco.nl . Consultado el 14 de diciembre de 2019 .
  3. ^ ""SYLK: El formato de archivo no es válido "mensaje de error al abrir el archivo" . Consultado el 18 de agosto de 2015 .
  4. ^ "La importación de Excel CSV devuelve un error de formato de archivo SYLK". 9 de enero de 2012 . Consultado el 18 de agosto de 2015 .