Tabla de cadenas compartidas de Microsoft Excel
La tabla de cadenas compartidas es un estándar Open XML, según lo define el estándar ISO - ISO / IEC 29500-1: 2016 (E)
Definición oficial de cadenas compartidas (citado del documento ISO)
Tabla de cadenas compartidas
Los valores de cadena se pueden almacenar directamente dentro de los elementos de celda de la hoja de cálculo; sin embargo, almacenar el mismo valor dentro de múltiples elementos de celda puede resultar en partes de hoja de trabajo muy grandes, posiblemente resultando en una degradación del rendimiento. La tabla de cadenas compartidas es una lista indexada de valores de cadenas, compartida en todo el libro, que permite que las implementaciones almacenen valores solo una vez.
El estándar ISO en cadenas compartidas se puede descargar desde
https://standards.iso.org/ittf/PubliclyAvailableStandards/c071691_ISO_IEC_29500-1_2016.zip
Respuestas a las preguntas sobre este tema.
Pregunta 1: ¿Se utilizan cadenas compartidas dentro de la propia aplicación de Excel, o solo al guardar los datos?
Respuesta:
Excel utiliza las cadenas compartidas solo al momento de guardar el documento, IE, solo con el propósito de almacenar la hoja de cálculo como un archivo en el almacenamiento.
Sin embargo, cuando el archivo se abre para su visualización, las celdas se rellenan con valores de cadena reales extraídos de la tabla de cadenas compartidas.
-
Pregunta 2: ¿Cuál sería un algoritmo de ejemplo para ordenar en el campo entonces? Cualquier lenguaje está bien (c, c #, c ++, python).
Respuesta:
Para una aplicación como Excel, supongo que una variación patentada especial de
ordenación rápida es el algoritmo más probable que se utilizará para ordenar los valores de cadena.
Excel tiene un límite de 1,048,576 filas. Para este tamaño, Quick sort es definitivamente un ganador. La ordenación rápida puede producir resultados muy eficientes para un conjunto de datos de esta magnitud.
Aquí está el enlace a la implementación de Quick Sort en C ++ para ordenar cadenas:
http://www.cplusplus.com/forum/beginner/101599/