te comparto uno que tengo hecho, modelo y vista en un mismo archivo. verás que los estilos los doy en la tabla, luego cuando abris con excel te respeta los estilos.
Código PHP:
Ver original<?php
header("Content-type: application/vnd.ms-excel,"); header("Content-Disposition: attachment; filename=nombredelarchivo.xls");
include("../core/abstract.db.php");
include("../core/funciones.php");
$clave = "*********";
include("../core/mcrypt.php");
function getTicketsUser($iduser){
$clave = "*********";
$consulta="SELECT * FROM users WHERE idusers = ".$iduser."";
$conexion = crear_conexion(SERVER,USER,PASS); $db = DATABASE;
$resultado = consulta_base_de_datos($consulta, $db, $conexion);
if ($row = obtener_resultados($resultado))
{
$row = desencripta($clave,$row["firstname"])." ".desencripta($clave,$row["lastname"]);
}
return $row;
}
$consulta="SELECT * FROM tickets";
$conexion = crear_conexion(SERVER,USER,PASS); $db = DATABASE;
$resultado = consulta_base_de_datos($consulta, $db, $conexion);
while ($row = obtener_resultados($resultado))
{
if($row["users_idusers"]){
$row["users_idusers"] = getTicketsUser($row["users_idusers"]);
$tikets[] = $row;
}
else{
$tikets[] = $row;
}
}
$thead = "
<table>
<tr style='background:black; color:white; font-weight:bold;'>
<th style='border:1px solid white;'>código único</th>
<th style='border:1px solid white;'>usuario</th>
<th style='border:1px solid white;'>número de ticket</th>
</tr>
";
foreach ($tikets as $ticket):
echo "<tr>";
echo "<td style='border:1px solid black;'>".utf8_decode($ticket['idtickets'])."</td>"; echo "<td style='border:1px solid black;'>".utf8_decode($ticket['users_idusers'])."</td>"; echo "<td style='border:1px solid black;'>".utf8_decode($ticket['ticketnumber'])."</td>"; echo "</tr>";
endforeach;
echo "</table>";
cerrar_conexion($conexion);
?>
Saludos.