Problema con el write de excel en PHP

Buenas foreros, tengo un problemilla y no se a que se puede deber, estoy intentando escribir datos en un excel a través de php y me da el siguiente error
Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\mambo\Solucion_pares2.php:13) in C:\wamp\www\mambo\Excel\Writer.php on line 67
Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\mambo\Solucion_pares2.php:13) in C:\wamp\www\mambo\Excel\Writer.php on line 68
Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\mambo\Solucion_pares2.php:13) in C:\wamp\www\mambo\Excel\Writer.php on line 69
Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\mambo\Solucion_pares2.php:13) in C:\wamp\www\mambo\Excel\Writer.php on line 70
Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\mambo\Solucion_pares2.php:13) in C:\wamp\www\mambo\Excel\Writer.php on line 71
Fatal error: Class 'OLE_PPS_File' not found in C:\wamp\www\mambo\Excel\Writer\Workbook.php on line 586
¿El caso es que esos archivos me los he descargado y supongo que estarán bien programados no? Alguien que me ayude por favor

1 Respuesta

Respuesta
1
El problema que parece que tienes es que antes de enviar las cabeceras en la línea 67, has efectuado alguna salida. Concretamente parece que en la línea 13. Debes tener ahí algún echo o header o similar. Deberías quitarlo.
A ver, el principio de mi código es éste
<!-- Manual de PHP de WebEstilo.com -->
<!-- INICIO de la hoja de estilo CSS -->
/*AQUI ME DA EL PROBLEMA
<div id="logo_bg">http://www.todoexpertos.com/mitodoexpertos/ask/1950519/<?php echo $mosConfig_live_site;?>business.gif</div>
*/
<!-- FIN de la hoja de estilo CSS -->
<h1>[color=#ffa500]<!--p echo " CONSULTA DE VIABILIDADES PARA PARES TELEFÓNICOS "-->[/color]</h1>
<table border="1">
<!--p<br-->// Test CVS
require_once 'C:\wamp\www\mambo\Excel\reader.php';
require_once 'C:\wamp\www\mambo\Excel\Writer.php';
$filename="salida.xls";
//abrimos un nuevo documento
$docexcel = new Spreadsheet_Excel_Writer();
//abrimos una hoja del documento
$nuevahoja =& $docexcel->addWorksheet("resultados");
if (PEAR::isError($Nuevahoja)) {
die($Nuevahoja->getMessage());
}
$data = new Spreadsheet_Excel_Reader();
$data->setOutputEncoding('CP1251');
$data->read('C:\wamp\www\mambo\ficheros\libro1.xls');
error_reporting(E_ALL ^ E_NOTICE);
...
/* ESTE ES EL FINAL DE MI CÓDIGO*/
$docexcel->send("salida.xls");
$docexcel->close();
?>
<!--------------INICIO del boton atrás------>
<div class="atras">
<a href="javascript:history.go( -1 );" align="center"><img
src="web_boton_atras.gif" alt="Inicio"></a>
</div>
<!--------------FIN del boton atrás------>
</body>
</html>
<br>
</body>
</html>
<tbody>
</tbody>
</table>
Donde me da el fallo es una hoja de estilo que he programado, ¿me imagino que el conflicto estará con el código HTML no?
pedon, pero el código html no sale reflejado, me imagino que lo interpretara, lo pondré entre comentarios
/*
<!-- Manual de PHP de WebEstilo.com -->
<html>
<!--------------INICIO de la hoja de estilo CSS------>
<meta http-equiv="Content-Sytle-Type" content="text/css">
<head>
<link href="hoja_estilo3.css" rel="stylesheet" type="text/css">
</head>
PROBLEMA!!!!!
<div id="logo_bg"><img src="<?php echo $mosConfig_live_site;?>business.gif" width="580" height="77" vspace="20" align="center" /></div>
<!--------------FIN de la hoja de estilo CSS------>
<body>
<h1> <b><FONT COLOR="orange"> <center> <?php echo " CONSULTA DE VIABILIDADES PARA PARES TELEFÓNICOS " ?> </center> </font> </b></h1>
<table border="1">
<?php
// Test CVS
require_once 'C:\wamp\www\mambo\Excel\reader.php';
require_once 'C:\wamp\www\mambo\Excel\Writer.php';
$filename="salida.xls";
//abrimos un nuevo documento
$docexcel = new Spreadsheet_Excel_Writer();
//abrimos una hoja del documento
$nuevahoja =& $docexcel->addWorksheet("resultados");
if (PEAR::isError($Nuevahoja)) {
die($Nuevahoja->getMessage());
}
**********
FINAL!!!
$result2=mysql_query("Select * FROM rangos WHERE (miga = $cod)",$link);
$row2=mysql_fetch_Array($result2);
?>
<tr>
<td> <?php echo "las viabilidades para éste par telefónico son ";
$via=$row2['tecnologia'];
$nuevahoja->write($i, 1, "$numero");
$nuevahoja->write($i, 2, "$via");
$nuevahoja->write($i, 3, "$giga10");
$nuevahoja->write($i, 4, "$giga50");
$nuevahoja->write($i, 5, "$adsl");
$nuevahoja->write($i, 6, "$shdsl");
echo $row2['tecnologia'];?>
</tr>
</td>
<?php
}
}
$docexcel->send("salida.xls");
$docexcel->close();
?>
<!--------------INICIO del boton atrás------>
<div class="atras">
<a href="javascript:history.go( -1 );" align="center"><img
src="web_boton_atras.gif" alt="Inicio"></a>
</div>
<!--------------FIN del boton atrás------>
</body>
</html>
<br>
</body>
</html>
*/
Entre medias, cargo un XML a mi servidor, lo abro, cojo los datos, los proceso y creo otro XML donde pego los resultados...
Lo que ocurre es que tienes un error de concepto: esta librería genera un fichero excel y lo vuelca a la salida. Es decir, que cuando estás haciendo $docexcel->send("salida.xls") se envía el fichero Excel al explorador.
Esto es totalmente incompatible con el hecho de que ya hayas colocado etiquetas HTML en la página.
Es decir que si despojas a tu página de toda etiqueta HTML obtendrás un fichero Excel.
No sé cual era tu intención original sobre qué hacer con ese fichero.
Ok, creo que lo he entendido, si que era un error de concepto, la verdad es que estaba modificando una página que cree con html, pero tienes razón, ¿paraq qué carajo quiero html si lo que quiero es un excel?, ahora si que me manda el excel, pero... dentro me da el siguiente error
<br /> ----> esto en la primera columna en la 1º fija
<b>Fatal error</b>: Class 'OLE_PPS_File' not found in <b>C:\wamp\www\mambo\Excel\Writer\Workbook.php</b> on line <b>586</b><br />----->esto en la 1º columna 2º fila
Pues lo que parece es que te falta una clase. Concretamente la 'OLE_PPS_File', quizás porque ese fichero Excel tenga un PowerPoint incrustado, y quizás esa clase no está instalada.
Bueno, la ultima respuesta no me ha servido de mucho, de todas formas las aclaraciones han sido muy rápidas y concisas. Muchas gracias por dedicarnos tu tiempo. Seguiré indagando y si sigue sin salirme volveré a preguntar..

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas