PDA

View Full Version : [PHP] Leggere celle da file in Excel


pix83
04-06-2007, 12:43
Posso fare una domanda???
Se io ho un file in Excel posto in questo modo:

file: prova.xls

| nome | cognome | data |
| andrea | rossi | 13/05/80 |
| marco | bianchi | 13/07/80 |

E vorrei richiamare una singola cella ogni tanto, come faccio?
Ovvero, scrivo un testo poi stampo a video la cella A3, poi continuo e dopo un po devo stampare a video la cella F5. Si puņ o devo per forza stampare tutto il file di fila???

pix83
04-06-2007, 15:32
Ho trovato questo script, ma mi stampa tutti i dati.

<?
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>";
?>

Come posso modificarlo???

yorkeiser
04-06-2007, 16:08
Sinceramente non ho capito cosa devi fare, ma se noti nel ciclo

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>";
stai stampando tutte le celle (ovvero per i che va da 0 al numero di righe e per j che va da 0 al numero delle colonne). Se vuoi stampare una sola cella basta che togli il ciclo. Ergo, se vuoi stampare la cella 4,2 del primo sheet (sheet 0) scriveresti (ad occhio):

echo $data->sheets[0]['cells'][4][2]

pix83
04-06-2007, 17:38
Cavolo, i mettevo nelle righe la lettera :muro:
Posso chiederti un'altra cosa???