Articulo de referencia

Enlace simbólico (SYLK)

Symbolic Link ( SYLK ) es un formato de archivo obsoleto [ 1 ] de Microsoft que se utilizaba para intercambiar datos entre hojas de cálculo . Los archivos SYLK suelen tener un s...

Symbolic Link ( SYLK ) es un formato de archivo obsoleto [ 1 ] de Microsoft que se utilizaba para intercambiar datos entre hojas de cálculo . Los archivos SYLK suelen tener un sufijo. Compuesto únicamente por caracteres ANSI visibles , puede ser creado y procesado fácilmente por otras aplicaciones, como bases de datos ..slk

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

Un error común (y erróneo) relacionado con el formato SYLK se produce cuando se guarda un archivo CSV ( valores separados por comas ) con el nombre del primer campo sin comillas "ID", es decir, los dos primeros caracteres coinciden con los dos primeros caracteres del formato SYLK. Microsoft Excel (al menos hasta Office 2016) mostrará entonces mensajes de error engañosos relacionados con el formato del archivo, como "El archivo que intenta abrir, 'x.csv', tiene un formato diferente al especificado por la extensión...". [ 4 ] [ 5 ]

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 inofensiva de un archivo CSV y todavía está habilitado de forma predeterminada en las versiones recientes (2016) de Microsoft Excel. [ 3 ]

Limitaciones

SYLK no admite Unicode. Incluso si un archivo SYLK se crea con una aplicación compatible con Unicode (por ejemplo, Microsoft Excel), el archivo se codificará en la página de códigos ANSI del sistema , no en Unicode. Si la aplicación contiene caracteres que se pueden visualizar en Unicode pero que no tienen un punto de código en la página de códigos del sistema, se convertirán en signos de interrogación ('?') en el archivo SYLK.

En SYLK, el punto y coma se trata como un separador de campos, por lo que no se puede usar sin escape en los valores de datos. Si una cadena de caracteres en el archivo SYLK debe contener un punto y coma (;), este debe ir precedido de otro punto y coma, de modo que la cadena aparezca como, por ejemplo, "WIDGET;;AXC1254". Microsoft Excel eliminará el primer punto y coma al importar el archivo 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 mostrará un mensaje de error y omitirá la carga de la línea demasiado larga.

Descripción

A continuación se muestra el contenido de un archivo SYLK de ejemplo:

ID;P C;Y1;X1;K"Fila 1" C;Y2;X1;K"Fila 2" C;Y3;X1;K"Total" C;Y1;X2;K11 C;Y2;X2;K22 C;Y3;X2;K0;ER1C2+R2C2 mi 

Este archivo, al ser leído por una aplicación de hoja de cálculo compatible con SYLK, se mostraría de la siguiente manera:

Los archivos SYLK consisten en una secuencia de registros con listas de campos separadas por punto y coma. En este archivo, el IDregistro (específicamente el que ID;está al inicio del archivo) actúa como un número mágico , identificando el archivo como un archivo SYLK, ya que todos los archivos SYLK deben comenzar con un IDregistro. El Pcampo sin valor indica que el archivo no fue generado por Microsoft Excel o la antigua aplicación de hoja de cálculo de Microsoft , Multiplan . Cada Cregistro describe una celda en la hoja de cálculo ubicada en la celda (X,Y)(los valores de los campos Xy Y). Los Kcampos definen el valor sin procesar de cada celda. Las cadenas de texto se encierran entre comillas. De lo contrario, el valor se muestra sin comillas. Las fechas y horas se almacenan internamente como números de días enteros y fraccionarios desde una época establecida y se muestran de acuerdo con las opciones de formato de celda personalizadas. El Ecampo define el valor de la celda como el valor de una expresión (equivalente, aquí, a la fórmula más familiar =B1+B2). Por último, el Eregistro marca el final del archivo. Debe ser el último registro del archivo.

Formato

El Fregistro se utiliza para definir y aplicar estilos a las celdas, y Ptambién puede utilizarse para definir formatos de números compartidos, junto con información de fuente. Por ejemplo:

ID;P P;PGeneral P;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;K11 C;Y2;X2;K22 C;Y3;X2;K0;ER1C2+R2C2 F;P2;C2 mi 

se representa de forma similar a la siguiente:

El campo Fdel registro indica que se está utilizando P2el formato numérico del tercer y penúltimo registro, y aplica dicho formato a la segunda columna. Los índices de los registros comienzan en cero , mientras que las columnas y filas comienzan en uno. En este ejemplo, se definen los siguientes formatos numéricos:PC2P

  • P0, el formato numérico general, que muestra el número tal como aparece en el archivo,
  • P1, un formato numérico que utiliza separadores de miles y ningún decimal,
  • P2(aplicado a la columna dos), el mismo formato numérico que P1pero con dos decimales,
  • y P3, el mismo formato de número que P2pero con un signo de dólar al principio.

El Wcampo del Fregistro define el ancho de un grupo de columnas en caracteres. Por ejemplo, los registros F;W1 1 20establecen F;W2 2 30el ancho de las dos primeras columnas de una hoja de cálculo en 20 y 30 caracteres respectivamente. Del mismo modo, F;W1 5 5establecería el ancho de las cinco primeras columnas en cinco caracteres cada una.

El Fcampo del Fregistro define tanto el formato numérico como la alineación del texto de una celda, columna, fila u hoja de cálculo. A diferencia del Pregistro, este campo solo admite un conjunto básico de formatos numéricos. Por ejemplo, un F;FD3Cregistro usaría el formato numérico predeterminado con tres dígitos y texto centrado.

El siguiente archivo SYLK:

ID;P P;PGeneral C;Y1;X1;K"Fila 1 Alineación izquierda" F;P0;FG0L C;Y2;X1;K"Fila 2 Justificar 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 

se renderizaría, ignorando los anchos de columna incorrectos, como:

El Pregistro también puede utilizarse para almacenar información de fuente, además del formato numérico. Una celda con un P;FCambria;M240;SB;L4registro aplicado se mostraría con la fuente Cambria ( ), fuente de FCambria12 puntos ( : el valor del campo dividido por 20 es el tamaño de fuente en puntos), negrita ( ) y verde ( ). [ 6 ] M240MSBL4

Sintaxis

La sintaxis básica de un archivo SYLK se muestra a continuación (en sintaxis ABNF ):

Archivo SYLK = 1 * ( Registro ) Registro = Tipo de registro * ( Campo ";" ) LF

A continuación se muestra una lista de los tipos de registro válidos junto con sus campos válidos:

Bregistro
Un registro que se utiliza para indicar el número de filas y columnas en una hoja de cálculo. Se recomienda que aparezca antes de los registros Cy F. Campos admitidos:
Cregistro
Un registro utilizado para describir el contenido de una célula.
Eregistro
Un registro que marca el final del archivo. Debe ser el último registro del archivo.
Fregistro
Un registro que sigue a cualquier otro Pregistro y aplica los formatos descritos por esos registros (o los campos descritos por el Fpropio registro) a toda la hoja de cálculo o a una sola celda, columna o fila. Campos admitidos:
Debe estar presente al menos uno de los siguientes campos: C, D, E, G, H, K, P, R, W, X, o Y.
Los campos Xy Ydefinen los formatos de celda, el Rcampo define los formatos de fila predeterminados, el Ccampo define los formatos de celda predeterminados y el Dcampo establece el formato de hoja de cálculo predeterminado.
IDregistro
Un registro de encabezado que se utiliza para identificar el tipo y el creador de una hoja de cálculo. Debe ser el primer registro del archivo. Campos admitidos:
NEregistro
Un registro que vincula un área de la hoja de cálculo con otra área de una hoja de cálculo externa. Debe colocarse después de cualquier otro NUregistro. Campos admitidos:
NLregistro
Un registro que describe los enlaces externos del gráfico.
NNregistro
Un registro utilizado para definir funciones, macros y expresiones con nombre. Es más eficiente si un registro se define antes de que se utilice su nombre por primera vez. Campos admitidos:NN
NUregistro
Un registro que precede a cualquier otro NEregistro y describe las sustituciones de nombres de archivo . Campos admitidos:
Oregistro
Un registro que describe las opciones de la hoja de cálculo. Campos admitidos:
Pregistro [ 6 ]
Un registro que describe el formato de las celdas y precede a cualquier otro Fregistro. Campos admitidos:
Wregistro
Un registro que describe las definiciones de las ventanas.

Los valores de fecha y hora se almacenan como números de punto flotante . La parte entera es el número de días después del 1 de enero de 1900 (si el Oregistro tiene un Vcampo con el valor 0, lo que indica que se está utilizando el sistema de fechas de 1900) o del 1 de enero de 1904 (si en cambio este valor es 4, lo que indica que se está utilizando el sistema de fechas de 1904). El sistema de fechas de 1904 solo se utiliza en versiones anteriores de Microsoft Excel en sistemas Macintosh anteriores a 2011. [ 7 ] El componente decimal es el número de segundos dividido por 86 400 (el número de segundos en un día) que han transcurrido desde las 00:00 o las 12:00  AM.

Es posible convertir valores de fecha serial a tiempo Unix restando 25.569 o 24.109 (el número de días entre el 1 de enero de 1970, la época Unix , y el 1 de enero de 1900 o el 1 de enero de 1904 respectivamente), y luego multiplicando por 86.400. La conversión de tiempo Unix a tiempo SYLK se puede realizar haciendo lo contrario (dividiendo por 86.400 y sumando 25.569 o 24.109). Sin embargo, para que se muestre correctamente, el formato de la celda debe configurarse con un formato personalizado como P;Pdd/mm/yyyy\ hh:mm:ss.

Microsoft Excel limita las celdas de los archivos SYLK importados a 255 caracteres. LibreOffice no tiene esta limitación.

  • Aquí también se pueden encontrar ejemplos detallados.

La sintaxis de SYLK se puede encontrar en:

  • Resumen de Microsoft SYLK (consulte también el artículo " Abusando del formato de archivo SYLK " para obtener información útil).
  • Resumen del formato GFF: Microsoft SYLK

y en:

  • Preguntas frecuentes sobre hojas de cálculo de aplicaciones informáticas
  • Consejos de Excel para convertir marcas de fecha y hora de Unix

Limitaciones relacionadas con la lectura y el guardado en Excel:

  • Características de Excel en Microsoft.com

Referencias

  1. Chen, Raymond (26 de febrero de 2020). "¿Qué pasa con los formatos de portapapeles CF_SYLK y CF_DIF?" . The Old New Thing . Consultado el 21 de mayo de 2026 .
  2. "LibreOffice Calc - Formatos de archivo compatibles" . 12 de noviembre de 2016.
  3. 1 2 Stan Hegt (30-10-2019). "Abuso del formato de archivo SYLK" . outflank.nl . Consultado el 14-12-2019 .
  4. "Mensaje de error "SYLK: El formato del archivo no es válido" al abrir el archivo . Consultado el 18 de agosto de 2015 .
  5. "La importación de archivos CSV de Excel devuelve un error de formato de archivo SYLK" . 9 de enero de 2012. Consultado el 18 de agosto de 2015 .
  6. 1 2 "Excel: Formato de archivo SYLK Campos de registro P adicionales" . El archivo de la base de conocimientos de Microsoft . 2 de noviembre de 1997. Recuperado el 10 de marzo de 2025 .
  7. 1 2 French, Ted (8 de julio de 2019). "Número de serie y fecha de serie en Excel" . Lifewire . Recuperado el 9 de marzo de 2025 .