2014-12-15 17 views
6

Ho una serie di circa 30 report Excel (.xlsm), ciascuno con una connessione univoca configurata su un database. La connessione è solo un breve script SQL che acquisisce i dati da mostrare nel report. I dati vengono inseriti in una tabella (non una tabella pivot).Collegamento cartella di lavoro di Excel per dimensioni file grandi

Ogni settimana è necessario aggiornare questi report, quindi utilizzo un semplice script PowerShell per aprire ciascuno dei file e aggiornare la connessione.

Ogni tanto è necessario inviare i report di base 30 ad altri gruppi di lavoro in modo che possano aggiornare manualmente i file da soli. Questo può essere un fastidio perché alcuni dei report sono molto grandi (30 MB +). Questo rende l'e-mail difficile, e caricarli/scaricarli più volte al giorno è solo una seccatura.

Per ovviare a ciò, prima di distribuire i modelli di report, provo a eliminare tutte le righe nelle tabelle e qualsiasi intervallo inutilizzato. Questo ha aiutato, ma ci sono ancora molti file che sono MOLTO grandi (30mb +) anche se abbiamo cancellato tutto nella cartella di lavoro eccetto la connessione e la tabella vuota.

Attraverso test, ho capito che se cancello la connessione configurata, la dimensione del file diventa sufficientemente piccola (< 1mb) che è quello che mi aspetterei. Questo mi porta a credere che le connessioni di Excel abbiano una sorta di cache che deve essere cancellata, tuttavia non riesco a trovare alcun riferimento per questo.

Qualcuno sa un modo semplice per ridurre la dimensione di una connessione in modo tale da poterlo fare a livello di programmazione con VBA/PowerShell?

+0

Buona domanda. Non che questo commento sia una risposta alla tua domanda, ma hai considerato una soluzione cloud, o ftp. Avere i file su un'unità di rete condivisa e soppiantare completamente il problema dell'email? Sono ancora interessato alla soluzione EFFETTIVA a questo, come probabilmente vorrai fare a prescindere dall'eliminazione del problema dell'email o meno. – peege

+0

Se apri il file .xlsm in un programma di archiviazione come winzip o 7 zip, puoi vedere gli elementi che compongono il file. C'è qualche elemento specifico all'interno di quello che è molto grande? Come dici tu, sembra che i tuoi dati sorgente vengano memorizzati nella cache come –

+3

Se l'eliminazione della connessione configurata riduce le dimensioni del tuo file abbastanza, perché non scrivere semplicemente una macro per eliminare le tue connessioni e un'altra per ristabilirle? – TheEngineer

risposta

1

Se l'eliminazione della connessione configurata riduce sufficientemente le dimensioni del file, è possibile scrivere una macro per eliminare le connessioni e un'altra per ristabilirle. Come suggerito da Noldor130884, è possibile eseguire automaticamente i macro su Workbook_Open e Workbook_Close.

+0

Grazie per questo. Non ho trovato un modo per cancellare qualsiasi cache di dati sembra esistere. Al posto di ciò, questo sembra essere l'approccio più ragionevole. –

0

Mi sembra che il problema riguardi la formattazione. Non so perché, ma nei miei file Excel ha riformattato tutte le righe e le colonne aggiungendo il modulo con i dati dalla connessione. Quindi il foglio era molto grande ma se controlli il file xml mostra solo i dati di formattazione. Una volta cancellato manualmente tutte le righe "vuote", la dimensione del file è di nuovo normale. Spero che aiuti, aiutato nel mio caso ..

Problemi correlati