Por que ainda há um limite de linha no Microsoft Excel? [fechado]

até ao Office 2007, o Excel tem um máximo de 65 000 linhas. O Office 2007 aumentou isso para um máximo de 1 milhão de filas, o que é melhor, claro; mas estou curioso -- por que há um limite? Obviamente, o desempenho vai desacelerar exponencialmente à medida que você aumenta o tamanho da planilha; mas não deve ser muito difícil ter o Excel otimizar para isso, começando com uma pequena folha e dinamicamente "re-dimensioná-la" apenas quando necessário. Dado o trabalho que deve ter sido para aumentar o limite de 65K para 1 milhão, por que não foram até o fim para que seja limitado apenas pela quantidade de memória disponível e espaço em disco?

Author: smci, 2009-02-09

2 answers

(actualizado por erro... Uma sugestão para todos: não publique assim antes de estar completamente acordado)

Provavelmente por causa das optimizações. Excel 2007 pode ter um máximo de 16 384 colunas e 1 048 576 linhas. Números estranhos?

14 bits = 16 384, 20 bits = 1 048 576

14 + 20 = 34 bits = mais de um registrador de 32 bits pode aguentar.

, Mas eles também precisam armazenar o formato da célula (texto, número, etc.) e formatação (cores, bordas, etc). Assumindo que eles usam duas palavras de 32 bits (64 bits) eles usam 34 bits para o número da célula e têm 30 bits para outras coisas.

Porque é que isso é importante? Na memória eles não precisam alocar toda a memória necessária para toda a planilha, mas apenas a memória necessária para seus dados, e todos os dados são marcados com em que célula é suposto estar.

Actualizar 2016:

Encontrei um link para a especificação da Microsoft para o Excel 2013 & 2016

  • abrir workbooks: Limited by available memory and system resources
  • Tamanho da folha de cálculo: 1 048 576 linhas (20 bits) por 16384 colunas (14 bits)
  • Largura da coluna: 255 caracteres (8 bits)
  • Altura da linha: 409 pontos
  • quebra de página: 1. 026 horizontal e vertical (número inesperado, provavelmente errado, 10 bits é 1024)
  • número Total de caracteres que uma célula pode conter: 32.767 caracteres (16 bits assinados)
  • caracteres num cabeçalho ou rodapé: 255 (8 bits)
  • folhas num livro de trabalho: limitadas pela memória disponível (o valor por omissão é 1 folha)
  • cores num livro de trabalho: 16 milhões de cores (32 bits com acesso total ao espectro de cores de 24 bits)
  • vistas nomeadas num livro de trabalho: limitadas pela memória disponível
  • formatos/estilos celulares únicos: 64 000 (16 bits = 65536)
  • estilos de preenchimento: 256 (8 bits)
  • Peso da linha e estilos: 256 (8 bits)
  • tipos de letra únicos: 1. 024 (10 bits) tipos de letra globais disponíveis para utilização; 512 por manual
  • formatos de Números num livro de trabalho: entre 200 e 250, dependendo da versão linguística do Excel que tiver instalado
  • nomes num livro de trabalho: limitados pela memória disponível
  • janelas num livro de trabalho: limitadas pela memória disponível
  • hiperligações numa folha de cálculo: 66.530 hiperligações (número inesperado, provavelmente errado. 16 bits = 65536)
  • painéis numa janela: 4
  • folhas ligadas: limitadas pela memória disponível
  • cenários: limitados por memória disponível; um relatório de síntese mostra apenas os primeiros 251 cenários
  • mudar células num cenário: 32
  • células ajustáveis na solução: 200
  • funções personalizadas: limitadas pela memória disponível
  • Intervalo de Zoom: 10% a 400%
  • relatórios: limitados pela memória disponível
  • Ordenar referências: 64 num único tipo; ilimitado ao usar tipos sequenciais {[[25]}
  • níveis anulados: 100
  • Campos sob a forma de dados: 32
  • manual parâmetros: 255 parâmetros por manual
  • itens apresentados nas listas de filtragem: 10. 000
 29
Author: some, 2017-11-15 10:25:44
Numa palavra-velocidade. Um índice de até um milhão de linhas se encaixa em uma palavra de 32 bits, para que possa ser usado de forma eficiente em processadores de 32 bits. Argumentos de função que se encaixam em um registro de CPU são extremamente eficientes, enquanto aqueles que são maiores requerem o acesso à memória em cada chamada de função, uma operação muito mais lenta. Atualizar uma planilha pode ser uma operação intensiva envolvendo muitas referências de células, por isso a velocidade é importante. Além disso, a equipe do Excel espera que qualquer um que lida com mais de um milhão as linhas irão usar uma base de dados em vez de uma folha de cálculo.
 9
Author: Two Bit Gangster, 2009-02-09 02:03:16