lunes, 10 de septiembre de 2018

Cómo reducir un archivo Excel (y saber porque ocupa tanto!)

Si trabajáis habitualmente con archivos Excel es posible que tengáis, sin sentido alguno, archivos anomalamente muy grandes. Lógicamente si en el archivo hay insertadas imágenes, sonidos o vídeos, el archivo no se podrá reducir mucho, ya que estos archivos ya están comprimidos y/o no se pueden reducir más.

Hay varias formas de reducir este tamaño; por ejemplo guardar el archivo en el formato XLSX o bien en XLSB (en binario). Este ultimo guarda el archivo en formato binario, excluyendo todo el formato e información que se almacena en estructuras XML. Otra opción es copiar el contenido del  archivo a un Excel nuevo copiando y pegando (o pegando sin formato)

Aun así, es posible que el archivo ocupe bastante. A menudo los formatos de estilo almacenados en celdas vacías incrementan el espacio del archivo, por lo que borrando el formato de las celdas vacías reducirá el tamaño del archivo.

Pero... ¿Cómo saber en un archivo Excel con varias (o cientos) de hojas las que más ocupan? Aquí va el truco ... 

Primero hay que renombrar el archivo XLSX a ZIP. Los archivos XLSX son por si archivos comprimidos que contienen, en varios archivos, todo el contendio del libro Excel. Podréis investigar la estructura de carpetas y saber que archivos ocupan más...

Dentro del archivo, en la carpeta xl\worksheets vereis, por cada hoja un archivo nombrado como sheetXX.xml y el espacio ocupado sin comprimir/comprimido. 
En el ejemplo veréis una hoja de Excel con 87 Hojas y concretamente la 85 que ocupa +300Mb descomprimida.





Para saber a que hoja se corresponde cada archivo, está la relación en el archivo workbook.xml. Vereis en formato XML como se relaciona ID del archivo (85 en mi caso) con el nombre que tiene la Hoja de Excel.


En el ejemplo sólamente quitando el formato de las celdas vacías logré reducir un Excel de 57Mb a 1,2Mb sin perder las fórmulas, información o el formato utilizado en las celdas utilizadas. 
En primer lugar convertí la hoja Excel XLS a formato XLSX. Renombre el archivo a ZIP y revise que hojas ocupaban mas (carpeta xl/worksheets dentro del archivo comprimido). Borré el formato de las celdas vacías y guardé el documento de nuevo en formato binario XLSB.


Estos archivos crecen especialmente al importar datos de otras fuentes y pegarlos en la hoja de datos (palabras clave, campañas adwords, reports del Analytics, ...)

miércoles, 9 de mayo de 2018

Error CredSSP al conectarse por Terminal Server

Después de la actualizacion de Windows 10 de hoy (08/05/2018) es muy posible que os aparezca este error al intentar conectar a otras maquinas por Terminal Server.
 

Esta actualizacion resuelve una vulnerabilidad que podria ejecutar codigo en una maquina no actualizada.

En la actualizacion de hoy, se ha modificado un valor por defecto de esta directiva pasando de Vulnerable a Mitigado mediante una clave de registro.

Si en nuestro sistema esta clave no existe aparece el error anterior.

PARA RESOLVER EL PROBLEMA podemos, manualmente añadir dicha clave mediante el editor de Registro. La ruta, clave y valor en cuestion es:

HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters  

Añadir un valor de tipo DWORD, con el valor "AllowEncryptionOracle" como informacion del valor "2"