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 .slk
sufijo. 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
- registro de identificación
- Usar:
- Un encabezado para identificar el tipo de hoja de cálculo y el creador.
- Debe ser el primer registro del archivo.
- Tipo de registro:
- IDENTIFICACIÓN
- Campos obligatorios:
- programa p
- creador de archivos
- Los posibles creadores incluyen:
- MP (multiplano)
- XL (Excel)
- Campos posibles:
- norte
- Si está presente, el archivo utiliza protección de celda estilo ;N
- Si está ausente, el archivo usa protección de celda estilo ;P
- mi
- Si están presentes, los registros NE son redundantes
- Si están ausentes, los registros NE no son redundantes
- registro B
- Usar:
- Indica el número de filas y columnas de la hoja de cálculo.
- Recomendado que venga antes de los registros C y F.
- Tipo de registro:
- B
- Campos obligatorios:
- X columnas
- indica el número máximo de columnas
- Y filas
- indica el número máximo de filas
- registro c
- Usar:
- Contenido de la celda
- Tipo de registro:
- C
- Campos obligatorios:
- columna X
- posición de la columna (una basada)
- Campos posibles:
- fila Y
- posición de la fila (una basada). Si se omite, se utiliza el valor encontrado más recientemente.
- mi expresión
- expresión para la celda
- valor k
- valor de la celda
- columna C
- referencia de columna
- fila R
- referencia de fila
- GRAMO
- define el valor compartido
- D
- define la expresión compartida
- S
- hace referencia a valor compartido o expresión compartida
- norte
- Si está presente, la celda no está protegida.
- Si está ausente y ;N está presente en el registro de identificación, la celda está protegida.
- PAG
- Si está presente, la celda está protegida.
- Si está ausente y ;N está ausente en el registro de identificación, la celda no está protegida.
- h
- Si está presente, la celda está oculta.
- Si está ausente, la celda no está oculta.
- expresión m
- expresión matricial de (X,Y) a (C,R)
- I
- dentro de una matriz
- Campos compatibles:
- Si ;G está presente, ;E debe estar ausente.
- Si ;G está presente, ;K debe estar presente.
- Si ;D está presente, ;E debe estar presente.
- Si ;S está presente, ;E, ;K, ;G, ;D y ;M deben estar ausentes.
- Si ;S está presente, ;R y ;C deben estar presentes. (Definen la fila y la columna desde donde se copia el valor/expresión compartido).
- Si ;N está presente en el registro de identificación, ;P debe estar ausente.
- Si ;N no está en el registro de identificación, ;N debe estar ausente.
- Si ;M está presente, ;E debe estar ausente.
- Si ;I está presente, ;K y ;E deben estar ausentes
- registro P
- Usar:
- formato de celda
- Si hay registros F, los precede.
- Campos obligatorios:
- formato P
- Especificación de formato de celda de estilo Excel
- registro f
- Usar:
- Formato
- Si hay registros P presentes, los sigue.
- Campos posibles:
- columna X
- columna (una basada)
- fila Y
- fila (una basada)
- columna C
- columna (una basada)
- fila R
- fila (una basada)
- formato F
- Formato de celda/fila/columna
- El formato de formato es
- ch1 dígitos ch2
- ch1 es
- D
- por defecto
- C
- divisa
- mi
- exponente
- F
- fijado
- GRAMO
- general
- $
- dólar
- *
- grafico
- %
- por ciento
- dígitos es el número de dígitos después del punto decimal
- ch2 es alineación
- D
- por defecto
- C
- centro
- GRAMO
- estándar
- l
- izquierda
- R
- bien
- -
- ignorado
- X
- llenar
- formato D
- Formato predeterminado.
- El formato de formato es
- ch1 dígitos ch2
- ch1 es
- C
- divisa
- mi
- exponente
- F
- fijado
- GRAMO
- general
- $
- dólar
- *
- grafico
- %
- por ciento
- dígitos es el número de dígitos después del punto decimal
- ch2 es alineación
- C
- centro
- GRAMO
- estándar
- l
- izquierda
- R
- bien
- -
- ignorado
- X
- llenar
- mi
- mostrar fórmulas
- k
- mostrar comas
- W col1 col2 ancho
- establecer anchos de columna
- N tamaño de fuente
- fuente a usar
- índice P
- Formato de celda de Excel, número del registro P (por ejemplo, P0 significa el primer registro P, que generalmente se declara como P;PGeneral
- estilo S
- estilo
- Los siguientes personajes pueden ser parte del estilo.
- I
- itálico
- D
- atrevido
- t
- parte superior de la cuadrícula
- l
- línea de cuadrícula izquierda
- B
- parte inferior de la cuadrícula
- R
- línea de cuadrícula a la derecha
- S
- fondo sombreado
- h
- Si está presente, no mostrar encabezados de fila/columna
- Si está ausente en todo el archivo, muestra los encabezados de fila/columna
- GRAMO
- Si está presente, no muestra líneas de cuadrícula predeterminadas
- Si está ausente en todo el archivo, muestra líneas de cuadrícula predeterminadas
- Campos compatibles:
- Al menos uno de ;X, ;Y, ;C, ;R, ;D, ;E, ;K, ;W, ;P, ;H o ;G debe estar presente.
- Si ;X o ;Y están presentes, tanto ;X como ;Y deben estar presentes. (Esto establece el formato de la celda).
- Si ;X está presente, ;R, ;C, ;E, ;K, ;W, ;N, ;H, ;G debe estar ausente.
- Si ;R está presente, ;X, ;Y, ;C, ;E, ;K, ;W, ;N, ;H, ;G debe estar ausente. (Esto establece el formato de fila predeterminado).
- Si ;C está presente, ;X, ;Y, ;R, ;E, ;K, ;W, ;N, ;H, ;G debe estar ausente. (Esto establece el formato de columna predeterminado).
- Si ;D está presente, ;X, ;Y, ;R, ;C debe estar ausente. (Esto establece el formato de hoja de cálculo predeterminado).
- Si ;X, ;Y, ;R, ;C están presentes, ;P y/o ;F y/o ;S deben estar presentes.
- Oh registro
- Usar:
- Opciones
- Campos posibles:
- Delta del G iter
- Si está presente, permita la iteración del valor.
- En caso de ausencia, no se permiten referencias circulares.
- iter (número máximo de iteraciones)
- delta (prueba de paso. Si es más pequeña, entonces está terminada).
- C
- prueba de finalización en el registro C anterior más cercano
- PAG
- la hoja está protegida
- l
- utilizar referencias del modo A1
- Incluso si se le da a ;L, las referencias R1C1 se usan en expresiones de archivos SYLK.
- METRO
- Si está presente, utilice el recálculo manual.
- Si está ausente, utilice el recálculo automático.
- mi
- Hoja de macros.
- Esto debería aparecer antes de la primera aparición de un campo ;G o ;F en un registro NN.
- Esto debería aparecer antes del primer registro C que utiliza una función solo de macro.
- valor V
- El valor indica la fecha base utilizada para calcular los valores de fecha de serie.
- 0:1 enero 1900
- 4:1 de enero de 1904
- registro NU
- Usar:
- sustitución de nombre de archivo
- Si hay registros NE presentes, deben precederlos.
- Campos obligatorios:
- L nombre de archivo
- nombre de archivo antiguo
- nombre de archivo F
- nuevo nombre de archivo
- registro NE
- Usar:
- Enlace externo
- Campos obligatorios:
- mi expresión
- Área objetivo en la hoja de cálculo
- nombre de archivo F
- Archivo fuente
- expresión S
- Área de origen en hoja externa
- registro NN
- Usar:
- Define nombres
- Más eficiente si NN aparece antes del uso del nombre.
- Campos obligatorios:
- N nombre
- nombre
- mi expresión
- expresión que describe el valor del nombre
- Campos posibles:
- G ch1 ch2
- nombre ejecutable (macro) con alias de clave de comando
- K ch1 ch2
- nombre ordinario con alias de comando no utilizados
- F
- utilizable como función
- Campos compatibles:
- Si ;G está presente, ;K debe estar ausente.
- récord
- Usar:
- Definiciones de ventanas
- récord de la Liga Nacional
- Usar:
- Enlace externo del gráfico
- registro e
- Usar:
- Fin del documento.
- Debe ser el último registro.
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:ss
para 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
- También se pueden encontrar ejemplos detallados aquí.
La sintaxis de SYLK se puede encontrar en:
- Resumen de Microsoft SYLK (consulte también el artículo Abuso del formato de archivo SYLK para obtener información útil)
- Resumen del formato GFF: Microsoft SYLK
y en:
- Preguntas frecuentes sobre comp.apps.spreadsheets
- Consejos de Excel para convertir marcas de fecha y hora de Unix
Límites relacionados con la lectura y el guardado con Excel:
- Funciones de Excel de Microsoft.com
Referencias
- ^ "LibreOffice Calc: formatos de archivo admitidos". 12 de noviembre de 2016.
- ^ ab Stan Hegt (30 de octubre de 2019). "Abusar del formato de archivo SYLK". flanco.nl . Consultado el 14 de diciembre de 2019 .
- ^ ""SYLK: El formato de archivo no es válido "mensaje de error al abrir el archivo" . Consultado el 18 de agosto de 2015 .
- ^ "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 .