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"


miércoles, 12 de agosto de 2015

Error DNS_PROBE_FINISHED_NXDOMAIN

Es posible que os topeis con este error al intentar acceder a algunas paginas web. Independientemente del navegador el error es parecido, no podiendo cargar el contenido externo al no poder resolver el nombre del dominio (wink wink, pista pista).

Puesto que el origen puede ser distinto en cada caso, os pongo a continuacion una recopilacion de varias soluciones. Pongo primero las mas rebuscadas, ya que las lógicas son muy... logicas.

- Hacer una purga de los registros DNS del sistema

  1. Abrir ventana de comandos de windows: Tecla Windows + R y en ejecutar "cmd"
  2. Ejecutar:    netsh winsock reset catalog
  3. Reiniciar (meh...)

- Reiniciar el servicio "Cliente DNS" de windows
  1. Tecla Windows + R y "services.msc"
  2. Buscar el servicio "Cliente DNS"
  3. Boton derecha / Reiniciar

Otras soluciones algo más lógicas y que os pueden funcionar tambien:

- Reiniciar el Router / Servicio DHCP / Renovar concesion IP de nuestro equipo

- Borrar cookies, historial y cache del navegador (meh...)

- Revisar las DNS que utilizais para navegar (Panel de control / Redes / Propiedades / Protocolo TCP-IP) y probar/cambiarlas por ejemplo por las de Google;  8.8.8.8  y 8.8.4.4

OJO! Es posible que actualizando el .NET Framework no funcione y os de errores tipo 0xC0000005 pero mirando el error_log de la instalación el problema puede venir a que no puede descargarse los paquetes de la instalación y de ahí que salga este error también.

Si tenéis alguna solución mas, añadidla a los comentarios, gracias !!!

viernes, 7 de junio de 2013

El servidor no interpreta código en PHP

Justo después de una actualización en el servidor puede surgir el problema de que el codigo de vuestra pagina en PHP no se interprete correctamente. He aquí algunos de los motivos (y su solución!).

- Cambio en la versión de PHP o Apache. Por defecto, algunas instalaciones nuevas de Apache, des-habilitan por defecto la ejecución de código PHP en directorios personales. La solución es fácil, comentar la directiva que por defecto lo bloquea. La puedes encontrar (normalmente) en:

/etc/apache2/mods-available/php5.conf

Hay que comentar (con #'s delante de la linea) este código (al final del archivo):

#<IfModule mod_userdir.c> # <Directory /home/*/public_html> # php_admin_value engine Off # </Directory> #</IfModule>

Se puede forzar la interpretación del código en un directorio concreto mediante el archivo htaccess del directorio, añadiendo:

php flag engine on

Nuestra configuracion de apache debe permitir el override de configuración ("AllowOverride Options" or "AllowOverride All" mas info aqui).

- Codificación de los archivos en PHP. Asegurate de que la codificación de los archivos (UTF-8, UTF-16, ANSI) sea compatible. Si no lo es, no sabe como "leerlos", no se interpretan y se muestran como texto.

- Por último, lo más lógico, asegurate que el servicio esta en marcha correctamente, las carpetas tienen los permisos adecuados y revisar que en el error_log no haya otro tipo de incidencia.