Me ha venido la inspiración, parece que ya controlo los mensajes tanto si existe en el fichero o viceversa:
Código PHP:
$prueba = false;
for ($row = 0; $row <= $highestRow; $row++) {
$usuario = $objPHPExcel->getActiveSheet()->getCell('A'.$row)->getValue();
if ($id == $usuario) {
$expediente = $objPHPExcel->getActiveSheet()->getCell('B'.$row)->getValue();
echo "<br> Número de expediente: " . "<b>$expediente</b>";
$col = 2;
$table = "<div align='center'><br>";
$table .= "<table>";
$table .= "<tr align='center'>";
for ($col = 2; $col <= 10; $col++) {
$materias = $objPHPExcel->getActiveSheet()->getCellByColumnAndRow($col,1)->getValue();
$table .= "<th width='75'>$materias</th>";
}
$table .= "<tr align='center'>";
for ($col = 2; $col <= 10; $col++) {
$notas = $objPHPExcel->getActiveSheet()->getCellByColumnAndRow($col,$row)->getValue();
$table .= "<td width='75'>$notas</td>";
}
$table .= "<tr>";
$prueba = true;
}
}
if ($prueba == false) {
if ($id != $usuario) {
$table1 = "<div align='center'><br>";
$table1 .= "<table>";
$table1 .= "<tr align='center'>";
$table1 .= "<th width='400'>No hay notas disponibles</th>";
$table1 .= "</tr>";
$table1 .= "</table>";
$table1 .= "</div>";
echo $table1;
$prueba = true;
}
}
De todas formas si veis algún error no dudeis en decírmelo.
Quedaría el tema para que en el for no tenga que poner un número entero, sino que lo cogiera desde la variable $highestColumn.
Un saludo.