A seguito di una richiesta di un cliente ho fatto una ricerca per siolvere questo problema, leggere dei file xls da PHP senza dover installare un driver ODBC
Questa classe PHP fa al caso nostro, ma ora vediamo come utilizzarla:
Estrazione classe
Estraiamo la classe così com’è compressa, verrà creata una cartella di excel che contiene 2 files:
reader.php
oleread.inc
Andremo poi ad includerli all’inizio del nostro script.
Script per visualizzare i dati di excel
<?
require_once ‘Excel/reader.php’;
$data = new Spreadsheet_Excel_Reader();
$data->setOutputEncoding(‘CP1251’);
// Set output
Encoding.$data->read(‘file_excel.xls’);
error_reporting(E_ALL ^ E_NOTICE);
echo “<table border=’1′>”;
for ($i = 1;
$i <= $data->sheets[0][‘numRows’];
$i++) {
echo “<tr>”;
for ($j = 1;
$j <= $data->sheets[0][‘numCols’];
$j++) {
echo “<td>”.$data->sheets[0][‘cells’][$i][$j].”</td>”;
}
echo “</tr>”;
}
echo “</table>”;
?>
attenzione!! ho riscontrato un errore nella lettura delle date, aggiunge un giorno. ciò sembra dovuto alla funzione createdate di excelreader che aggiunge uno (+1) durante la fx di calcolo del timestamp .alla riga 970. (circa) ovvero –“$utcValue = round(($utcDays + 1) * SPREADSHEET_EXCEL_READER_MSINADAY); ” io ho tolto il +1 e tutto andato ok!