¿Diagnosticar hojas de cálculo Excel lentas?

13

Un cliente me contactó, quejándose de las hojas de cálculo de Excel que tardaban demasiado en abrirse. Usan Excel para crear facturas, por lo que tienen cientos de hojas de cálculo Excel con formato ligero y cálculos muy simples. Al ordenar las hojas de cálculo por tamaño, vi que si bien la mayoría de las hojas de cálculo oscilaban entre 10 y 250k, había un puñado de hojas de cálculo con tamaños de archivo de 2-3 MB y más. Curiosamente, los tamaños de archivo no eran enormes, no contenían muchos datos, solo un poco de formato, tal vez dos o tres páginas de facturas impresas, pero la cantidad de datos era casi idéntica a las hojas de cálculo de menor tamaño (y apertura normal) .

Al abrir el archivo, la cantidad de RAM necesaria aumentaría de 3 MB a 400 MB, y ocuparía por completo un solo núcleo (probado en un doble núcleo en la oficina y mi computadora portátil de cuatro núcleos), mientras se inicia. Pensé que de alguna manera habían captado algún código VBA, pero no hay macros, no hay código VBA. Ctrl + Fin muestra 39 filas y aproximadamente 12 columnas (termina en M). Incluso he eliminado los datos, fila por fila o columna por columna, hasta que no quedan datos, y todavía me da el mismo problema.

He revisado muchas búsquedas de Google, pero no he llegado a ninguna parte. ¿Alguien puede ofrecer alguna ayuda?

Simon Hova
fuente
Otra nota interesante: no puedo guardar el archivo xlsx como un archivo xls en Excel 2007, pero al importarlo a Google Docs y luego guardarlo como un archivo xls, obtengo un archivo de tamaño normal una vez más.
Simon Hova

Respuestas:

7

¡He encontrado la respuesta a mi problema!

Utilizando las pistas que me dio allquixotic, abrí los archivos xlsx en 7-Zip y comparé los tamaños de los archivos. Había un archivo que era mucho más grande que los otros. El archivo xl \ drawings \ drawing1.xml era un archivo que contenía múltiples referencias a formatos, una y otra vez.

Pasé unas horas tratando de descubrir un patrón, pero no pude. ¡Nada de lo que pude hacer pudo hacerlo funcionar! Luego, después de un ataque de agravación, simplemente eliminé el maldito archivo e intenté volver a abrirlo en Excel (2010- no lo probé en Excel 2007).

Se quejó de que el archivo estaba dañado y me preguntó si me gustaría intentar una reparación. La reparación del archivo simplemente borró la forma, pero no cambió el formato del archivo en absoluto. Tuve que volver a guardar el archivo como el mismo archivo, lo cual fue un poco extraño, ¡pero funcionó!

Como mencioné antes, no había probado esta solución para ningún producto que no sea Excel 2010, por lo que no sé si el archivo de forma era crítico para Excel 2k7 o cualquier producto de OpenOffice. Pero, si tiene un problema similar, con suerte esto podría ser útil.

Simon Hova
fuente
Encontré el archivo con el mismo problema. En lugar de eliminar drawing1.xml, eliminé la referencia al dibujo de sheet1.xml e hice "guardar como". La causa posible puede ser la copia de datos o cadenas formateadas de correo, internet u otras hojas de cálculo.
Andrei
1
Encontró una situación similar. En mi caso, hay varios drawingN.xml, con un tamaño que varía de 200 KB "aceptables" a 80 MB. Ese archivo pone de rodillas incluso el escritorio de cuatro núcleos con 16 GB de RAM. Quitar todo el dibujoN.xml (dado que el archivo de Excel ni siquiera contiene ningún cuadro / gráfico) resuelve el problema, funciona en la última versión de Office 365 al momento de escribir esto.
Martheen Cahya Paulo
6

¿Está utilizando el formato binario .xls o el nuevo formato .xlsx basado en XML? En general, el formato .xlsx produce una reducción dramática en el tamaño del archivo.

Compruebe si hay cosas como un número excesivo de estilos almacenados en el documento.

Intente "eliminar la información personal" (una característica de Excel / Word / etc.) Para limpiar ciertos tipos de cruft que podrían estar en el archivo.

Si la hoja de cálculo es, o se ha compartido previamente, puede tener datos compartidos antiguos almacenados en ella.

Una solución simple es copiar y pegar solo los datos relevantes de esa hoja de cálculo a una nueva, luego guardarla en formato .xlsx y ver qué tan pequeña es. Si es muy pequeño, entonces tiene su respuesta: Excel está contabilizando mal las estructuras de datos de su formato de archivo interno.

Compruebe también si hay fórmulas complicadas o circulares y referencias a hojas externas (especialmente aquellas en unidades de red). Si cree que una fórmula puede ser lenta, puede recorrerla utilizando la herramienta de auditoría de fórmulas.

Lo último: si lo guarda como un .xlsx y sigue siendo grande, intente descargar la herramienta de productividad OpenXML SDK: http://www.microsoft.com/en-us/download/details.aspx?id=5124

Abra el .xlsx en eso y solo eche un vistazo a todos los elementos dentro del archivo y vea si algo es obviamente extraño. Esto puede requerir conocimiento de XML y de los esquemas específicos de OpenXML, pero es una forma segura de descubrir qué está causando la hinchazón.

PD: si este tipo de cosas te molestan, deja de usar los formatos / programas de Microsoft o sugiere a tu cliente que lo haga. Si buscas en Google "hincha de la base de datos de Microsoft Access", verás que Microsoft tiene una larga historia de permitir que sus formatos propietarios filtren toneladas de datos inútiles al disco que nunca se limpian. Es como una pérdida de memoria realmente desagradable que se come el disco en lugar de la RAM.

allquixotic
fuente
La hoja de cálculo es de hecho un xlsx, y una cosa extraña: no puedo guardarlo como un archivo .xls. Sigue devolviendo un error en Excel 2k7. Guardé una copia como hoja de cálculo xml de 2003, y lo extraño que encontré fue que incluía una enorme cantidad de estilos . Esto es extraño porque toda la hoja de cálculo usa la misma fuente y no tiene un formato especial. Todavía no tengo idea de qué decirle a mi cliente.
Simon Hova
2

Otra posible solución sería:

  1. Crear una copia del archivo de Excel problemático
  2. Abre esa copia
  3. Presione CTRL + A y luego haga clic en "Borrar" -> "Borrar formatos"
  4. Repita el paso 3 en cada hoja de trabajo
  5. Guarde el archivo e intente volver a abrirlo

Cuando hay demasiado formato, especialmente si hay muchos estilos diferentes aplicados a muchas celdas individuales, Excel realmente tiene problemas para tratar de aplicar el formato al abrir archivos.

Naturalmente, cuando elimine todo el formato, terminará con solo texto con el estilo predeterminado aplicado en todas las celdas sin bordes, sombreado, etc. Pero de esta manera puede determinar la causa del problema.

RusI
fuente
0

Para una reducción dramática en el tamaño, puede probar el formato .xlsb. Debería reducirse más que cualquier otro formato basado en XML que Excel ofrezca.

Abra una de esas hojas de cálculo y eche un vistazo al formato. Busca cualquier cosa usual. Intente copiar toda la columna en otra hoja de cálculo de Excel y pegue solo los valores (sin formato alguno). A ver si ayuda.

TwirlMandarin
fuente
Intenté guardar en xlsb. No hay reducción de tamaño en absoluto. Captura de pantalla .
Simon Hova
@Simon Hova ¿Intentó establecer el cálculo en manual y reiniciar el Excel? Podría ser cualquier cosa: fórmulas, formateo. ¿Copió la columna de datos a otra hoja de cálculo de Excel para ver si el rendimiento es el mismo? Solo los datos; Sin fórmula ni formato. Añádalos uno a la vez y vea dónde está el problema.
TwirlMandarin
Esa es otra cosa extraña, no es ningún cálculo, no hay fórmulas que se ejecuta. Son solo unas pocas filas y columnas con un formato menor. He intentado eliminar los datos fila por fila, y me queda un archivo que tiene aproximadamente el mismo tamaño que antes. Aún perplejo.
Simon Hova
0

En mi caso, el problema estaba relacionado con "Formatear como tabla". La mesa tenía 16000 columnas vacías. Supongo que esta es una de las razones más frecuentes para este tipo de problema.

Revious
fuente
0

Eché un vistazo a todas las reglas de formato condicional, en toda la hoja de trabajo, y había muchas. Lo revisé y los borré todos, y luego creé los que realmente necesitaba, y ahora es realmente rápido. También me deshice de todas las 'Conexiones' que no necesitaba, y las guardé como .xlsb después de que todo funcionó bien, y ahora es aún más rápido: o)

Pablo
fuente
Esto duplica la información en otras respuestas, por lo que parece un comentario de "gracias".
bertieb