Diagnosticando planilhas lentas do Excel?

13

Um cliente entrou em contato comigo, reclamando das planilhas do Excel que estavam demorando muito para abrir. Eles usam o Excel para criar faturas e, portanto, têm centenas de planilhas do Excel com formatação leve e cálculos muito simples. Ao classificar as planilhas por tamanho, vi que, enquanto a maioria das planilhas variava de 10 a 250 mil, havia várias planilhas com tamanhos de arquivo de 2 a 3 MB e mais. Estranhamente, o tamanho dos arquivos não era grande, eles não mantinham muitos dados, apenas um pouco de formatação, talvez duas ou três páginas de faturas impressas, mas a quantidade de dados era quase idêntica às planilhas de tamanho menor (e com abertura normal) .

Ao abrir o arquivo, a quantidade de RAM necessária aumentaria de 3 MB para 400 MB e ocuparia completamente um único núcleo (testado em um núcleo duplo no escritório e no meu laptop quad-core) durante a inicialização. Eu pensei que eles de alguma forma pegaram algum código VBA, mas não há macros, nenhum código VBA. Ctrl + End mostra 39 linhas e cerca de 12 colunas (termina em M). Eu até apaguei os dados, linha por linha, ou coluna por coluna, até que não restem mais dados, e isso ainda me dá o mesmo problema.

Analisei muitas pesquisas no Google, mas não cheguei a lugar algum. Alguém pode oferecer alguma ajuda?

Simon Hova
fonte
Outra observação interessante: não consigo salvar o arquivo xlsx como um arquivo xls no Excel 2007, mas importando-o para o Google Docs e salvando-o como um arquivo xls, recebo um arquivo de tamanho normal novamente.
Simon Hova

Respostas:

7

Encontrei a resposta para o meu problema!

Usando as dicas que o allquixotic me deu, abri os arquivos xlsx no 7-Zip e comparei os tamanhos dos arquivos. Havia um arquivo muito maior que os outros. O arquivo xl \ drawings \ drawing1.xml era um arquivo que continha várias referências a formatos, uma e outra vez.

Passei algumas horas tentando descobrir um padrão, mas não consegui. Nada que eu pudesse fazer poderia funcionar! Então, após um ataque de agravamento, acabei de excluir o maldito arquivo e tentei reabri-lo no Excel (2010 - não testei no Excel 2007).

Ele reclamou que o arquivo estava danificado e perguntou se eu gostaria de tentar um reparo. Reparar o arquivo simplesmente apagou a forma, mas não mudou a formatação do arquivo. Eu tive que salvar novamente o arquivo como o mesmo arquivo, o que foi um pouco estranho, mas funcionou!

Como mencionei antes, eu não havia testado essa solução para outros produtos além do Excel 2010, portanto não sei se o arquivo de forma foi crítico para o Excel 2k7 ou qualquer produto OpenOffice. Mas, se você tiver um problema semelhante, espero que isso possa ser útil.

Simon Hova
fonte
Eu encontrei o arquivo com o mesmo problema. Em vez de excluir drawing1.xml, removi a referência ao desenho do sheet1.xml e "salvei como". Possível causa pode estar copiando dados ou seqüências de caracteres formatadas de correio, internet ou outras planilhas.
217 Andrei
1
Encontrou uma situação semelhante. No meu caso, existem vários drawingN.xml, com tamanho variando de "aceitável" 200 KB a 80 MB. Esse arquivo traz até um desktop quad-core com 16 GB de RAM de joelhos. A remoção de todos os drawingN.xml (já que o arquivo do Excel nem contém nenhum gráfico / gráfico) resolve o problema, funciona no Office 365 mais recente no momento da redação deste documento.
Martheen Cahya Paulo 10/09/19
6

Você está usando o formato .xls binário ou o novo formato .xlsx baseado em XML? Em geral, o formato .xlsx resulta em uma redução drástica no tamanho do arquivo.

Verifique se há um número excessivo de estilos armazenados no documento.

Tente "remover informações pessoais" (um recurso do Excel / Word / etc.) Para limpar certos tipos de sujeira que possam estar no arquivo.

Se a planilha for, ou tiver sido compartilhada anteriormente, pode ter dados antigos de compartilhamento armazenados nela.

Uma solução simples é copiar e colar apenas os dados relevantes dessa planilha em uma nova, salvá-los no formato .xlsx e ver como são pequenos. Se for muito pequeno, você terá a sua resposta - o Excel está fazendo uma contabilidade insuficiente das estruturas de dados do formato de arquivo interno.

Verifique também fórmulas complicadas ou circulares e referências a folhas externas (especialmente as de unidades de rede). Se você acha que uma fórmula pode ser lenta, você pode fazer isso usando a ferramenta de auditoria da fórmula.

Última coisa: se você o salvar como um arquivo .xlsx e ele ainda for grande, tente fazer o download da ferramenta de produtividade do OpenXML SDK: http://www.microsoft.com/en-us/download/details.aspx?id=5124

Abra o arquivo .xlsx e dê uma olhada em todos os elementos do arquivo e veja se algo é obviamente estranho. Isso pode exigir conhecimento de XML e dos esquemas específicos do OpenXML, mas é uma maneira infalível de descobrir o que está causando o inchaço.

PS - se esse tipo de coisa o incomoda, pare de usar os formatos / programas da Microsoft ou sugira ao seu cliente que faça isso. Se você procurar no Google por "inchaço do banco de dados do Microsoft Access", verá que a Microsoft tem um longo histórico de permitir que seus formatos proprietários vazem toneladas de dados inúteis no disco que nunca são limpos. É como um vazamento de memória realmente desagradável que come seu disco em vez de sua RAM.

allquixotic
fonte
A planilha é de fato um xlsx, e uma coisa estranha: não consigo salvá-lo como um arquivo .xls. Ele continua retornando um erro no Excel 2k7. Salvei uma cópia como uma planilha XML de 2003, e o estranho foi que ela listou um número enorme de estilos . Isso é estranho, porque a planilha inteira usa a mesma fonte e nenhuma formatação especial. Ainda não faço ideia do que dizer ao meu cliente.
Simon Hova
2

Outra solução possível seria:

  1. Crie uma cópia do arquivo problemático do Excel
  2. Abra essa cópia
  3. Pressione CTRL + A e clique em "Limpar" -> "Limpar formatos"
  4. Repita a etapa 3 em todas as planilhas
  5. Salve o arquivo e tente reabri-lo

Quando há muita formatação, especialmente se houver muitos estilos diferentes aplicados a várias células individuais, o Excel realmente tenta aplicar a formatação ao abrir arquivos.

Naturalmente, quando você remove toda a formatação, acaba com apenas o texto com o estilo padrão aplicado a todas as células sem bordas, sombreamento, etc. Mas desta maneira você pode identificar a causa do problema.

RusI
fonte
0

Para uma redução drástica no tamanho, você pode tentar o formato .xlsb. Deve reduzir mais do que qualquer outro formato baseado em XML que o excel forneça.

Abra uma dessas planilhas e dê uma olhada no formato. Procure por qualquer coisa usual. Tente copiar a coluna inteira para outra planilha do Excel e cole apenas os valores (sem formatação). Veja se isso ajuda.

TwirlMandarin
fonte
Eu tentei salvar no xlsb. Nenhuma redução no tamanho. Captura de tela .
Simon Hova
@ Simon Hova Você tentou definir o cálculo para manual e reiniciar o excel? Pode ser qualquer coisa: fórmulas, formatação. Você copiou a coluna de dados para outra planilha do Excel para ver se o desempenho é o mesmo? Apenas os dados; nenhuma fórmula ou formatação. Adicione-os um de cada vez e veja onde está o problema.
21712 TwilightMandarin
Isso é outra coisa estranha, não é nenhum cálculo, não existem fórmulas sendo executados. São apenas algumas linhas e colunas com alguma formatação menor. Tentei excluir os dados linha por linha e fiquei com um arquivo com o mesmo tamanho de antes. Ainda perplexo.
Simon Hova
0

No meu caso, o problema estava relacionado ao "Formatar como tabela". A tabela tinha 16000 colunas vazias. Eu acho que essa é uma das razões mais frequentes para esse tipo de problema.

Revious
fonte
0

Eu dei uma olhada em todas as regras de formatação condicional, em toda a planilha, e havia muitas. Eu passei e limpei todos eles, e depois criei os que eu realmente precisava, e agora é muito rápido. Também me livrei de todas as 'Conexões' de que não precisava e salvei como .xlsb depois que tudo funcionou bem, e agora é ainda mais rápido: o)

Paulo
fonte
Isso duplica as informações em outras respostas e, portanto, parece um comentário de "obrigado".
precisa saber é o seguinte