Diagnosi di fogli di calcolo Excel lenti?


13

Un cliente mi ha contattato, lamentandosi dei fogli di calcolo di Excel che impiegavano troppo tempo ad aprirsi. Usano Excel per creare fatture, quindi hanno centinaia di fogli di calcolo Excel con formattazione leggera e calcoli molto semplici. Quando ho ordinato i fogli di calcolo per dimensione, ho visto che mentre la maggior parte dei fogli di calcolo variava da 10 a 250k, c'erano una manciata di fogli di calcolo con dimensioni di file di 2-3 MB e oltre. Stranamente, le dimensioni dei file non erano enormi, non contenevano molti dati, solo un po 'di formattazione, forse due o tre pagine di fatture stampate, ma la loro quantità di dati era quasi identica ai fogli di calcolo di dimensioni inferiori (e apertura normale) .

Quando si apre il file, la quantità di RAM necessaria passerebbe da 3 MB a 400 MB e occuperebbe completamente un singolo core (testato su un dual-core in ufficio e il mio laptop quad-core), all'avvio. Pensavo che in qualche modo avessero catturato del codice VBA, ma non ci sono macro, né codice VBA. Ctrl + Fine mostra 39 righe e circa 12 colonne (termina in M). Ho persino eliminato i dati, riga per riga o colonna per colonna, fino a quando non rimangono più dati e mi dà ancora lo stesso problema.

Ho esaminato molte ricerche su Google, ma non sono arrivato da nessuna parte. C'è nessuno che possa aiutare?


Un'altra nota interessante: non sono in grado di salvare il file xlsx come file xls in Excel 2007, ma importandolo in Google Documenti e quindi salvandolo come file xls, ottengo nuovamente un file di dimensioni normali.
Simon Hova,

Risposte:


7

Ho trovato la risposta al mio problema!

Usando gli indizi forniti da allquixotic, ho aperto i file xlsx in 7-Zip e confrontato le dimensioni dei file. C'era un file che era molto più grande degli altri. Il file xl \ designs \ drawing1.xml era un file che conteneva più riferimenti a formati, ancora e ancora.

Ho trascorso alcune ore cercando di capire uno schema, ma non ci sono riuscito. Niente che potessi fare poteva farlo funzionare! Quindi, dopo un attacco di aggravamento, ho appena eliminato il dannato file e ho provato a riaprire in Excel (2010- non l'ho testato in Excel 2007).

Si è lamentato del fatto che il file fosse danneggiato e mi ha chiesto se volevo tentare una riparazione. La riparazione del file ha semplicemente cancellato la forma, ma non ha modificato affatto la formattazione del file. Ho dovuto salvare nuovamente il file come lo stesso file, il che era un po 'strano, ma ha funzionato!

Come accennato in precedenza, non avevo testato questa soluzione per prodotti diversi da Excel 2010, quindi non so se il file di forma fosse critico per Excel 2k7 o qualsiasi prodotto OpenOffice. Ma, se hai un problema simile, spero che questo possa essere utile.


Ho riscontrato un file con lo stesso problema. Invece di eliminare drawing1.xml, ho rimosso il riferimento al disegno da sheet1.xml e ho fatto "salva con nome". La possibile causa potrebbe essere la copia di dati o stringhe formattate da posta, Internet o altri fogli di calcolo.
Andrei,

1
Incontrato una situazione simile. Nel mio caso, ci sono diversi drawingN.xml, con dimensioni che vanno da "accettabili" da 200 KB a 80 MB. Quel file mette in ginocchio anche il desktop quad-core con 16 GB di RAM. La rimozione di tutto drawingN.xml (poiché il file Excel non contiene nemmeno alcun grafico / grafico) risolve il problema, funziona sull'ultimo Office 365 al momento della stesura di questo documento.
Martheen Cahya Paulo,

6

Stai utilizzando il formato binario .xls o il nuovo formato XML .xlsx basato su XML? In generale, il formato .xlsx si traduce in una drastica riduzione delle dimensioni dei file.

Controlla cose come un numero eccessivo di stili memorizzati nel documento.

Prova a "rimuovere le informazioni personali" (una funzionalità di Excel / Word / ecc.) Per ripulire alcuni tipi di cruft che potrebbero trovarsi nel file.

Se il foglio di calcolo è, o è stato precedentemente condiviso, potrebbe contenere vecchi dati di condivisione.

Una semplice soluzione è quella di copiare e incollare solo i dati rilevanti da quel foglio di calcolo in uno nuovo, quindi salvarli in formato .xlsx e vedere quanto è piccolo. Se è molto piccolo, allora hai la tua risposta: Excel sta facendo scarsa contabilità delle strutture di dati del suo formato di file interno.

Verificare anche la presenza di formule complicate o circolari e riferimenti a fogli esterni (in particolare quelli su unità di rete). Se ritieni che una formula possa essere lenta, puoi spostarti utilizzando lo strumento di controllo della formula.

Ultima cosa: se lo salvi come .xlsx ed è ancora grande, prova a scaricare lo strumento di produttività SDK OpenXML: http://www.microsoft.com/en-us/download/details.aspx?id=5124

Apri il file .xlsx e dai un'occhiata a tutti gli elementi all'interno del file e vedi se qualcosa è ovviamente estraneo. Ciò può richiedere la conoscenza di XML e degli schemi OpenXML specifici, ma è un modo infallibile per scoprire cosa sta causando il gonfiamento.

PS: se questo genere di cose ti dà fastidio, smetti di usare i formati / programmi Microsoft o suggerisci ai tuoi clienti di farlo. Se cerchi Google "gonfio del database di Microsoft Access", vedrai che Microsoft ha una lunga storia nel lasciare che i loro formati proprietari perdano tonnellate di dati inutili su disco che non vengono mai ripuliti. È come una perdita di memoria davvero brutta che mangia il tuo disco invece della RAM.


Il foglio di calcolo è davvero un xlsx e una cosa strana: non posso salvarlo come file .xls. Continua a restituire un errore in Excel 2k7. Ho salvato una copia come foglio di calcolo XML del 2003 e la cosa strana che ho trovato era che elencava un numero enorme di stili . Questo è strano perché l'intero foglio di calcolo utilizza lo stesso carattere e nessuna formattazione speciale. Non ho ancora idea di cosa dire al mio cliente.
Simon Hova,

2

Un'altra possibile soluzione sarebbe:

  1. Crea una copia del file Excel problematico
  2. Apri quella copia
  3. Premi CTRL + A, quindi fai clic su "Cancella" -> "Cancella formati"
  4. Ripeti il ​​passaggio 3 su ogni foglio di lavoro
  5. Salvare il file e provare a riaprirlo

Quando c'è troppa formattazione, specialmente se ci sono molti stili diversi applicati a molte singole celle, Excel fatica davvero a cercare di applicare la formattazione quando si aprono i file.

Naturalmente, quando rimuovi tutta la formattazione, finirai con solo il testo con lo stile predefinito applicato in tutte le celle senza bordi, ombreggiatura, ecc. Ma in questo modo è possibile individuare la causa del problema.


0

Per una drastica riduzione delle dimensioni potresti provare il formato .xlsb. Dovrebbe ridurre più di qualsiasi altro formato basato su XML fornito da Excel.

Apri uno di quei fogli di calcolo e dai un'occhiata al formato. Cerca qualcosa di solito. Prova a copiare l'intera colonna in un altro foglio di calcolo Excel e incolla solo i valori (senza alcuna formattazione). Vedi se aiuta.


Ho provato a salvare in xlsb. Nessuna riduzione delle dimensioni. Screenshot .
Simon Hova,

@Simon Hova Hai provato a impostare il calcolo su manuale e a riavviare Excel? Potrebbe essere qualsiasi cosa: formule, formattazione. Hai copiato la colonna di dati in un altro foglio di calcolo Excel per vedere se le prestazioni sono le stesse? Solo i dati; nessuna formula o formattazione. Aggiungili uno alla volta e vedi dove si trova il problema.
TwirlMandarin,

Questa è un'altra cosa strana, non v'è nessun calcolo, non ci sono formule in esecuzione. Sono solo poche righe e colonne con una formattazione minore. Ho provato a cancellare i dati riga per riga e mi rimane un file delle stesse dimensioni di prima. Ancora perplesso.
Simon Hova,

0

Nel mio caso il problema era correlato a "Formato come tabella". La tabella aveva 16000 colonne vuote. Immagino che questo sia uno dei motivi più frequenti di questo tipo di problema.


0

Ho dato un'occhiata a tutte le regole di formattazione condizionale, nell'intero foglio di lavoro, e c'erano molti. Li ho esaminati e cancellati tutti, quindi ho creato quelli di cui avevo davvero bisogno, e ora è davvero veloce. Mi sono anche sbarazzato di tutte le "connessioni" di cui non avevo bisogno e ho salvato come .xlsb dopo che tutto ha funzionato bene, ed è ancora più veloce ora: o)


Questo duplica le informazioni in altre risposte e quindi sembra un commento di ringraziamento.
bertieb,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.