La connection au classur Excel rend la taille du file grande

J'ai une série d'environ 30 rapports Excel ( .xlsm ), qui ont chacune une connection unique configurée dans une database. La connection est juste un court script SQL qui gère datatables à afficher sur le rapport. Les données sont rassemblées dans une table (pas une table pivot).

Chaque semaine, nous devons mettre à jour ces rapports, donc j'utilise un simple script PowerShell pour ouvrir chacun des files et rafraîchir la connection.

De time en time, nous devons envoyer les rapports de base 30 à d'autres groupes de travail afin qu'ils puissent mettre à jour manuellement leurs files. Cela peut être une nuisance car certains des rapports sont très importants (30 millions +). Cela rend difficile l'envoi par courrier électronique, et les download / les download plusieurs fois par jour n'est qu'un problème.

Pour atténuer cela, avant de dissortingbuer les templates de rapport, j'essaie de supprimer toutes les lignes des arrays et toute plage inutilisée. Cela a aidé, mais il existe encore plusieurs files qui sont TRÈS grands (30 millions +) même si nous avons supprimé tout dans le classur sauf la connection et la table vide.

À travers les tests, je me suis rendu count que si je supprime la connection configurée, la taille du file devient suffisamment petite (<1mb) ce que je m'attends. Cela m'amène à croire que les connections Excel ont une sorte de cache qui doit être effacé, mais je ne trouve aucune reference pour cela.

Est-ce que quelqu'un connaît une façon simple de réduire la taille d'une connection de telle manière que je puisse le faire de manière programmée à l'aide de VBA / Powershell?

Si la suppression de la connection configurée réduit la taille de votre file, vous pouvez écrire une macro pour supprimer vos connections et une autre pour les rétablir. Comme l'a suggéré Noldor130884, vous pouvez exécuter automatiquement les macros sur Workbook_Open et Workbook_Close .

Office Online – Créer, éditer et gérer les connections aux données externes

La reference ci-dessus semble faire la déclaration pertinente ci-dessous:
"La suppression d'une connection supprime uniquement la connection et ne supprime aucun object ou donnée du classur".

Il me semble que le problème réside dans le formatting. Je ne sais pas pourquoi, mais dans mes files, Excel a reformaté toutes les lignes et les colonnes en ajoutant un formulaire avec des données de la connection. Ainsi, la feuille était très grande, mais si vous vérifiez le file xml, il affiche uniquement des données de mise en forme. Une fois que j'ai supprimé manuellement toutes les lignes "vides", la taille du file est de nouveau normale. J'espère que cela aide, m'a aidé dans mon cas …