Hola, Yo uso este código y no me da problemas. Revisalo.
Código PHP:
include("../../i/configuracion.php");
header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=Listado_$colegio_deptal.xls");
?>
<html>
<head>
<title>Listado General - CQFP</title>
</head>
<body>
<?PHP
if ($_SESSION['nivel'] <= 2)
{
$consulta="SELECT cqfp,apellido_paterno,apellido_materno,nombre,colegio_deptal,fecha_habilitacion,documento,tipo_docum
FROM colegiados
WHERE colegio_deptal='$depto'
ORDER BY apellido_paterno";
$resultado=mysql_query($consulta,$con) or die("Error al buscar datos, referente al bloque de contenidos de CQFP");
if(mysql_num_rows($resultado)>0)
{
?>
<table width="100%" border="1" cellpadding="0" cellspacing="0">
<tr>
<td colspan="8"><div align="center"><font size="+2" color="#FF0000"><b>Listado General de los AGREMIADOS del Colegio Químico Farmacéutico del Perú <br>
Departamento de <?=$colegio_deptal?> </b></font></div></td>
</tr>
<tr>
<td><strong>Colegiatura</strong></td>
<td><b>Apellido Paterno</b></td>
<td><b>Apellido Materno</b></td>
<td><b>Nombre(s)</b></td>
<td><b>Departamento</b></td>
<td><b>Fecha de<br>
habilitación</b></td>
<td><b>Tipo Documento</b></td>
<td><b>Documento </b></td>
</tr>
<?
//-------Inicio de la region repetida
while($row = mysql_fetch_assoc($resultado))
{
extract($row);
?>
<tr>
<td><div align="center"><?=$cqfp ?>
</div></td>
<td><?=$apellido_paterno ?></td>
<td><?=$apellido_materno?></td>
<td><?=$nombre?></td> .... (resto del código)