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?
la source
Réponses:
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.
la source
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.
la source
Une autre solution possible serait:
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.
la source
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.
la source
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.
la source
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)
la source