Diagnostiquer les feuilles de calcul Excel lentes?

13

Un client m'a contacté, se plaignant de feuilles de calcul Excel qui prenaient beaucoup trop de temps pour s'ouvrir. Ils utilisent Excel pour créer des factures, ils ont donc des centaines de feuilles de calcul Excel avec un formatage léger et des calculs très simples. Lors du tri des feuilles de calcul par taille, j'ai vu que, alors que la plupart des feuilles de calcul variaient de 10 à 250 000, il y avait une poignée de feuilles de calcul avec des tailles de fichier de 2 à 3 Mo et plus. Curieusement, les tailles de fichiers n'étaient pas énormes, elles ne contiennent pas beaucoup de données, juste un peu de formatage, peut-être deux ou trois pages de factures imprimées, mais leur quantité de données était presque identique aux feuilles de calcul de plus petite taille (et d'ouverture normale) .

Lors de l'ouverture du fichier, la quantité de RAM nécessaire augmenterait de 3 Mo à 400 Mo et occuperait complètement un seul cœur (testé sur un double cœur au bureau et mon ordinateur portable quadruple cœur), au démarrage. Je pensais qu'ils avaient en quelque sorte attrapé du code VBA, mais il n'y a pas de macros, pas de code VBA. Ctrl + Fin affiche 39 lignes et environ 12 colonnes (se termine par M). J'ai même supprimé les données, ligne par ligne ou colonne par colonne, jusqu'à ce qu'il n'y ait plus de données, et cela me pose toujours le même problème.

J'ai passé en revue de nombreuses recherches sur Google, mais je suis arrivé nulle part. Quelqu'un peut-il offrir de l'aide?

Simon Hova
la source
Autre remarque intéressante: je ne peux pas enregistrer le fichier xlsx en tant que fichier xls dans Excel 2007, mais en l'important dans Google Docs, puis en l'enregistrant en tant que fichier xls, j'obtiens à nouveau un fichier de taille normale.
Simon Hova

Réponses:

7

J'ai trouvé la réponse à mon problème!

En utilisant les indices qui m'ont été donnés par allquixotic, j'ai ouvert les fichiers xlsx en 7-Zip et comparé les tailles de fichiers. Il y avait un dossier beaucoup plus volumineux que les autres. Le fichier xl \ dessins \ dessin1.xml était un fichier qui contenait plusieurs fois des références à des formats.

J'ai passé quelques heures à essayer de trouver un motif, mais je n'ai pas pu. Rien de ce que j'ai pu faire ne pouvait le faire fonctionner! Ensuite, après une crise d'aggravation, je viens de supprimer le fichu fichier et j'ai essayé de rouvrir dans Excel (2010 - je ne l'ai pas testé dans Excel 2007).

Il s'est plaint que le fichier était endommagé et m'a demandé si j'aimerais tenter une réparation. La réparation du fichier a simplement effacé la forme, mais n'a pas du tout modifié la mise en forme du fichier. J'ai dû réenregistrer le fichier comme le même fichier, ce qui était un peu étrange, mais cela a fonctionné!

Comme je l'avais mentionné auparavant, je n'avais testé cette solution pour aucun produit autre qu'Excel 2010, donc je ne sais pas si le fichier de forme était critique pour Excel 2k7 ou tout produit OpenOffice. Mais, si vous avez un problème similaire, j'espère que cela pourrait être utile.

Simon Hova
la source
J'avais rencontré un fichier avec le même problème. Au lieu de supprimer drawing1.xml, j'ai supprimé la référence au dessin de sheet1.xml et j'ai "enregistré sous". La cause possible peut être la copie de données ou de chaînes formatées à partir du courrier, d'Internet ou d'autres feuilles de calcul.
Andrei
1
Rencontré une situation similaire. Dans mon cas, il existe plusieurs dessin N.xml, avec une taille allant de 200 Ko «acceptable» à 80 Mo. Ce fichier met même le bureau quad-core avec 16 Go de RAM à genoux. La suppression de tous les dessins N.xml (car le fichier Excel ne contient même aucun graphique / graphique) résout le problème, fonctionne sur le dernier Office 365 au moment de la rédaction de cet article.
Martheen Cahya Paulo
6

Utilisez-vous le format binaire .xls ou le nouveau format XML-basé .xlsx? En général, le format .xlsx entraîne une réduction spectaculaire de la taille des fichiers.

Recherchez des éléments tels qu'un nombre excessif de styles stockés dans le document.

Essayez de "supprimer les informations personnelles" (une fonction d'Excel / Word / etc.) Pour nettoyer certains types de fichiers qui pourraient se trouver dans le fichier.

Si la feuille de calcul est ou a déjà été partagée, il se peut qu'elle contienne d'anciennes données de partage.

Une solution simple consiste à copier et coller uniquement les données pertinentes de cette feuille de calcul dans une nouvelle, puis à les enregistrer au format .xlsx et à voir à quel point elles sont petites. Si c'est très petit, alors vous avez votre réponse - Excel fait une mauvaise comptabilité des structures de données de son format de fichier interne.

Vérifiez également les formules complexes ou circulaires et les références aux feuilles externes (en particulier celles sur les lecteurs réseau). Si vous pensez qu'une formule peut être lente, vous pouvez la parcourir à l'aide de l'outil d'audit de formule.

Dernière chose: si vous l'enregistrez en tant que .xlsx et qu'il est toujours volumineux, essayez de télécharger l'outil de productivité OpenXML SDK: http://www.microsoft.com/en-us/download/details.aspx?id=5124

Ouvrez le fichier .xlsx et jetez un coup d'œil à tous les éléments du fichier et voyez si quelque chose est manifestement étranger. Cela peut nécessiter la connaissance de XML et des schémas OpenXML spécifiques, mais c'est un moyen infaillible de savoir ce qui cause le ballonnement.

PS - si ce genre de chose vous ennuie, arrêtez d'utiliser les formats / programmes Microsoft ou suggérez à votre client de le faire. Si vous cherchez sur Google pour "Ballonnement de la base de données Microsoft Access", vous verrez que Microsoft a une longue histoire de laisser leurs formats propriétaires divulguer des tonnes de données inutiles sur le disque qui n'est jamais nettoyé. C'est comme une fuite de mémoire vraiment désagréable qui mange votre disque au lieu de votre RAM.

allquixotic
la source
La feuille de calcul est en effet un xlsx, et une chose étrange: je ne peux pas l'enregistrer en tant que fichier .xls. Il continue de renvoyer une erreur dans Excel 2k7. J'ai enregistré une copie sous forme de feuille de calcul xml 2003, et la chose étrange que j'ai trouvée est qu'elle énumère un nombre énorme de styles . C'est étrange car la feuille de calcul entière utilise la même police et aucune mise en forme spéciale. Je ne sais toujours pas quoi dire à mon client.
Simon Hova
2

Une autre solution possible serait:

  1. Créer une copie du fichier Excel problématique
  2. Ouvrez cette copie
  3. Appuyez sur CTRL + A puis cliquez sur "Effacer" -> "Effacer les formats"
  4. Répétez l'étape 3 sur chaque feuille de calcul
  5. Enregistrez le fichier et essayez de le rouvrir

Lorsqu'il y a trop de mise en forme, surtout s'il existe de nombreux styles différents appliqués à de nombreuses cellules individuelles, Excel a vraiment du mal à appliquer la mise en forme lors de l'ouverture des fichiers.

Naturellement, lorsque vous supprimez toute mise en forme, vous vous retrouverez avec juste du texte avec un style par défaut qui lui sera appliqué dans toutes les cellules avec des bordures, des ombrages, etc. disparus. Mais de cette façon, vous pouvez identifier la cause du problème.

RusI
la source
0

Pour une réduction spectaculaire de la taille, vous pouvez essayer le format .xlsb. Devrait réduire plus que tout autre format basé sur XML fourni par Excel.

Ouvrez l'une de ces feuilles de calcul et examinez le format. Recherchez tout ce qui est habituel. Essayez de copier la colonne entière dans une autre feuille de calcul Excel et collez les valeurs uniquement (sans aucun formatage). Voyez si cela aide.

TwirlMandarin
la source
J'ai essayé d'enregistrer dans xlsb. Aucune réduction de taille du tout. Capture d'écran .
Simon Hova
@Simon Hova Avez-vous essayé de définir le calcul sur manuel et de redémarrer Excel? Cela peut être n'importe quoi: formules, formatage. Avez-vous copié la colonne de données dans une autre feuille de calcul Excel pour voir si les performances sont les mêmes? Juste les données; pas de formule ou de mise en forme. Ajoutez-les un par un et voyez où est le problème.
TwirlMandarin
C'est une autre chose étrange, il n'y a pas de calcul, il n'y a pas de formule en cours d'exécution. Ce ne sont que quelques lignes et colonnes avec une mise en forme mineure. J'ai essayé de supprimer les données ligne par ligne, et je me retrouve avec un fichier qui est à peu près de la même taille qu'auparavant. Toujours perplexe.
Simon Hova
0

Dans mon cas, le problème était lié au "Format en tant que tableau". La table comportait 16 000 colonnes vides. Je suppose que c'est l'une des raisons les plus fréquentes de ce genre de problème.

Revious
la source
0

J'ai regardé toutes les règles de mise en forme conditionnelle, dans toute la feuille de calcul, et il y avait des charges. Je les ai parcourus et les ai tous effacés, puis j'ai créé ceux dont j'avais réellement besoin, et maintenant c'est vraiment rapide. Je me suis également débarrassé de toutes les `` connexions '' dont je n'avais pas besoin et enregistre au format .xlsb après que tout a bien fonctionné, et c'est encore plus rapide maintenant: o)

Paul
la source
Cela duplique les informations dans d'autres réponses, et ressemble donc à un commentaire de "merci".
bertieb