MS-Excel Stream Handler’s Bugs

Otra de las herramientas para crear excel he escuchado (pongo esto porque nunca he podido generar un excel válido con ella) es la clase MS-Excel Stream Handler, pero a aparte de que cuando la logras hacer funcionar no genera un excel válido o por lo menos que lo pueda interpretar el Office 2007 o 2010 contiene algunos bugs que le impiden su funcionamiento.

El primer bugs es producto de que es una clase pensada para Linux y al introducir cualquier ruta de archivo le pone delante el caracter “/” como si fuera el directorio root. Esto hay que eliminarlo de la función stream_open en la línea:

$this->xlsfilename = '/' . $url['host'] . $url['path'];

Esta debería quedar de la siguiente forma para evitar errores del tipo Failed to open stream: "xlsStream::stream_open" cuando ponemos una ruta en windows del tipo absoluta (C:\Documents and Settings\-\My) o relativa:

$this->xlsfilename = $url['host'] . $url['path'];

El otro bugs no es un error que te impida la ejecución del script es solo un warning de PHP pero fácilmente corregible y es en la función _xls_stream_write sustituir la línea:

$row = 0;

Por esta otra, ya que la variable size nunca ha sido definida y siempre es llamada como size +=, lo que da un tipo no definido la primera vez que se ejecuta:

$size = $row = 0;

Aún con todo esto crea excel no compatibles con Office 2007 o 2010.

Comentarios