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?
fuente
Respuestas:
¡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.
fuente
¿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.
fuente
Otra posible solución sería:
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.
fuente
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.
fuente
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.
fuente
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)
fuente