Tabela de cadeias compartilhadas do Microsoft Excel
A tabela de cadeias compartilhadas é e o padrão Open XML, conforme definido pelo padrão ISO - ISO / IEC 29500-1: 2016 (E)
Definição oficial de strings compartilhadas (citadas no documento ISO)
Tabela de cadeias compartilhadas
Os valores de sequência podem ser armazenados diretamente dentro dos elementos das células da planilha; no entanto, armazenar o mesmo valor dentro de vários elementos de célula pode resultar em partes da planilha muito grandes, possivelmente resultando em degradação do desempenho. A Tabela de cadeias compartilhadas é uma lista indexada de valores de cadeias, compartilhada na pasta de trabalho, que permite que as implementações armazenem valores apenas uma vez.
O padrão ISO em Shared Strings pode ser baixado em
https://standards.iso.org/ittf/PubliclyAvailableStandards/c071691_ISO_IEC_29500-1_2016.zip
Respostas às perguntas sobre este tópico
Pergunta 1: As cadeias compartilhadas são usadas no próprio aplicativo Excel ou apenas ao salvar os dados?
Resposta:
As seqüências compartilhadas são usadas pelo Excel somente no momento de salvar o documento, IE, apenas com o objetivo de armazenar a planilha como um arquivo no armazenamento.
No entanto, quando o arquivo é aberto para exibição, as células são preenchidas com valores de cadeia reais extraídos da tabela de cadeias compartilhadas.
-
Pergunta 2: Qual seria um exemplo de algoritmo para classificar no campo? Qualquer linguagem é adequada (c, c #, c ++, python).
Resposta:
Para um aplicativo como o Excel, acho que uma variação proprietária especial da
classificação Rápida é o algoritmo mais provável a ser usado para classificar os valores das strings.
O Excel tem um limite de 1.048.576 linhas. Para esse tamanho, a classificação rápida é definitivamente um vencedor. A ordenação rápida pode produzir resultados muito eficientes para um conjunto de dados dessa magnitude.
Aqui está o link para a implementação da Classificação Rápida em C ++ para classificar seqüências de caracteres:
http://www.cplusplus.com/forum/beginner/101599/