La solución de @Juan_Bautista es para un entorno win32, para poder hacerlo para otros OSs tendrás que usar http://sourceforge.net/projects/phpexcelreader . Es muy bueno y acá un ejemplo para la generación de código para la inserción a base de datos
Código PHP:
require_once 'Excel/reader.php';
$data = new Spreadsheet_Excel_Reader();
// Set output Encoding.
$data->setOutputEncoding('CP1251');
$data->read('Convenios.xls');
$query = "";
for ($i = 2; $i <= $data->sheets[0]['numRows']; $i++) {
$query .= "insert into convenio values('$i',";
for ($j = 1; $j <= 16; $j++) {
$query.="'".addslashes($data->sheets[0]['cells'][$i][$j])."'";
if($j < 16)
$query.=",";
}
$query .=")&|&\n";
}
echo $query;
$array = explode('&|&',$query);
for ($i=0;$i<sizeof($array)-1;$i++) {
$result = @mysql_query($array[$i], $CONNECT);
if($result == NULL) {
echo " ERROR EN LA LINEA : ".$i;
echo "$array[$i]";
}
}