Arquivo do Excel crescendo muito (150 MB)

4

Existe um arquivo do Excel específico que é usado por vários funcionários da minha empresa. Ele é editado no Excel 2003 e 2007, com o recurso "Compartilhamento" ativado para permitir vários gravadores de uma vez.

O arquivo tem uma quantidade razoável de dados em várias planilhas com alguma formatação básica e costumava ter cerca de 6MB, o que parece razoável para o seu conteúdo. Mas depois de algumas semanas de edição, o arquivo cresceu para 10, depois para 20 MB, e eventualmente disparou para mais de 150 MB, embora ainda tenha aproximadamente a mesma quantidade de dados de antes. Agora leva de 5 a 10 minutos para abri-lo, e muito tempo novamente para salvá-lo.

Na primeira vez que isso aconteceu, copiei o conteúdo de cada folha em uma nova pasta de trabalho em branco e salvei a nova pasta de trabalho; isso trouxe de volta para cerca de 6MB. Agora, explodiu novamente.

A pasta de trabalho usa o recurso "Validação de dados" para limitar os valores em determinadas colunas ao conteúdo de alguns intervalos nomeados. Copiar todos os dados em uma nova pasta de trabalho significa redefinir toda a validação de dados, o que é uma dor e não algo que queremos fazer todo mês.

Como uma etapa de solução de problemas, tentei salvar o arquivo no formato "XML Spreadsheet 2003", na esperança de obter algumas informações sobre o que estava sendo armazenado. Com certeza, o arquivo foi quase um show, e quase todos os 10 milhões de linhas são assim:

<NamedCell ss:Name="Z_21D5114F_E50C_46AC_AA4F_C3FF540C717F_.wvu.FilterData"/>
<NamedCell ss:Name="Z_1EE2BA5E_3011_4F9A_8ACD_E58835250FC4_.wvu.FilterData"/>
<NamedCell ss:Name="Z_1E3BDCEA_6A72_4ECC_BF4F_7B03CC66181E_.wvu.FilterData"/>

Eu vi alguns VBScripts online para gerenciar e enumerar células nomeadas que estão escondidas na interface interna do Excel, embora eu me pergunte como elas lidariam com as minhas 10 milhões de células nomeadas. realmente precisa, porém, é uma compreensão de por que isso continua acontecendo. Quais ações do excel podem estar causando isso?

ATUALIZAÇÃO:

Aqui está uma experiência que experimentei que fornece mais detalhes:

  • eu desliguei o compartilhamento; o arquivo permaneceu enorme.
  • Salvei o arquivo como um arquivo .xlsx e ele diminuiu para 5MB.
  • Fechei o arquivo, abri-o e salvei-o como um arquivo .xls, com o compartilhamento ainda desativado; ficou enorme de novo!
  • Quando um usuário '03 tenta abrir esse arquivo .xlsx compacto e bonito, leva vários minutos para abri-lo, mesmo que '07 abra bem.

Então, esse parece ser um problema específico de '03, e salvar o arquivo no formato '03 imediatamente recriou um monte de lixo que claramente não estava no arquivo '07 '.

    
por Josh 20.04.2010 / 15:26

5 respostas

12

Diga comigo: o Excel não é um banco de dados.

Você está enfrentando as limitações de design do software: ele só tem tanta capacidade de armazenar dados transacionais, portanto, quando várias pessoas escrevem nele, ele precisa armazenar um pouco de informação para poder reconciliar. Você tem tantos dados, que as cópias transacionais são GRANDES.

A Microsoft assume (corretamente) que, se você tem tantos dados, eles são armazenados em um banco de dados, e você está apenas usando o Excel como um front-end.

Se você vai trabalhar assim, você deve pelo menos reunir um pequeno banco de dados Access. Vai poupar-lhe um mundo de dor de cabeça, porque é para funcionar assim e o Excel não é.

@Josh: Sim, absolutamente está vazando. Quando você compartilha um documento, ele tem que acompanhar as modificações feitas por cada usuário ... Eu chamarei isso de "dados transacionais", mas você pode apenas pensar nisso como histórico. Como nunca há uma versão "oficial", ela mantém o controle das alterações, e o documento aumenta mais do que a Kirstie Alley em uma loja de donuts.

É por design. Alguém que é um guru do excel pode ser capaz de lhe dizer como fazê-lo parar, mas a melhor solução é simplesmente não usar o excel para dados que estão sendo mantidos constantemente. Não é para isso que é projetado.

Eu sou solidário com o seu problema, mas é uma solução melhor para explicar o problema para os superiores e elaborar um novo procedimento, do que tentar prolongar um hack infeliz.

@Josh: Se você quiser reduzi-lo apenas uma vez, copie temporariamente todos os dados e cole-os em uma nova planilha. Isso matará todos os metadados, garantido (certifique-se de não selecionar a planilha inteira, mas apenas a parte com dados nela). Mas esta é uma solução temporária na melhor das hipóteses.

    
por 20.04.2010 / 15:42
2

Parece que você está enfrentando um problema de exibições personalizadas. Veja:

Como faço para remover o material _ # wvu # FilterData?
link

Como desativo as exibições personalizadas? (scroll)
link

    
por 20.04.2010 / 16:38
1

Para uma correção temporária rápida, você pode desativar o compartilhamento e salvar o arquivo para ver se despeja a bagagem extra? Para uma solução melhor, você precisa transformar isso em um banco de dados. Se você não tem tempo e experiência para criar o banco de dados, você examinou a planilha do Google? Eles apenas o reescreveram para uma melhor edição simultânea multiusuário.

    
por 20.04.2010 / 16:11
0

Você também pode querer ver um "Salvar como ..." no menu Arquivo.

O Excel, junto com o Word e outros membros do Office, salva o histórico de desfazer no arquivo por um tempo LONG .

Portanto, faça um "Salvar como ...", escolha um novo nome de arquivo e compare os dois arquivos por tamanho. Se o novo encolher como eu esperava, mova-o de volta para o antigo, e siga seu caminho alegre.

Outros comentadores estão corretos, no entanto, quando apontam que o Excel não é um banco de dados . Sim, pode funcionar como um e é bom para pequenos conjuntos de dados. Mas, para o que você está descrevendo, é preciso migrar para uma nova solução.

Informação adicional:
Todos os cálculos, todas as formatações e qualquer outro tipo de "faça isso

por 20.04.2010 / 16:48
0

link

Tente isso

  1. Identifique a última linha de dados preenchida e clique em qualquer célula em uma linha abaixo dela
  2. Selecione essa linha até o final e exclua todas as linhas
  3. Faça o mesmo para colunas
  4. Salve e feche o arquivo
  5. Encerrar o MS Excel
  6. Reabrir o arquivo

Isso resolve o problema?

    
por 29.05.2015 / 18:12