|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Feb 2001
Messaggi: 39
|
leggere excel con php
qualcuno è a conoscenza di qualche funzione in php per leggere dati da un foglio excel?
io ne ho trovate un paio... ma girano solo su win. in pratica devo 'semplicemente' leggere dati da un foglio excel e poi usarli in un portale in php... nessuna idea brillante su come fare? |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Quote:
Esportavo semplicemente i dati del foglio di excel in un file di testo con i delimitatori, dopodichè, con la funzione explode() di php mi leggevo tutti i campi.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
|
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Feb 2001
Messaggi: 39
|
ci avevo pensato anche io.. mi sono però bloccato in quanto non so come esportare in txt (o altro) il mio foglio di lavoro in ambiente linux.
purtroppo il file .xls da cui devo attingere cambia tutti i giorni, quindi la procedura deve essere completamente automatica... tu come avevi fatto? |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Quote:
Ho comunque trovato quest'esempio su google: Codice:
<?php
// The example of print out the result
$result = array();
searchEXL("C:/test.xls", "test", $result);
foreach($result as $sheet => $rs){
echo "Found at $sheet";
echo "<table width=\"100%\" border=\"1\"><tr>";
for($i = 0; $i < count($rs["FIELD"]); $i++)
echo "<th>" . $rs["FIELD"][$i] . "</th>";
echo "</tr>";
for($i = 0; $i < count($rs["TEXT"]); $i++) {
echo "<tr>";
for($j = 0; $j < count($rs["FIELD"]); $j++)
echo "<td>" . $rs["ROW"][$i][$j] . "</td>";
echo "</tr>";
}
echo "</table>";
}
/**
* @param $file string The excel file path
* @param $keyword string The keyword
* @param $result array The search result
*/
function searchEXL($file, $keyword, &$result) {
$exlObj = new COM("Excel.Application") or Die ("Did not connect");
$exlObj->Workbooks->Open($file);
$exlBook = $exlObj->ActiveWorkBook;
$exlSheets = $exlBook->Sheets;
for($i = 1; $i <= $exlSheets->Count; $i++) {
$exlSheet = $exlBook->WorkSheets($i);
$sheetName = $exlSheet->Name;
if($exlRange = $exlSheet->Cells->Find($keyword)) {
$col = 1;
while($fields = $exlSheet->Cells(1, $col)) {
if($fields->Text == "")
break;
$result[$sheetName]["FIELD"][] = $fields->Text;
$col++;
}
$firstAddress = $exlRange->Address;
$finding = 1;
$result[$sheetName]["TEXT"][] = $exlRange->Text;
for($j = 1; $j <= count($result[$sheetName]["FIELD"]); $j++) {
$cell = $exlSheet->Cells($exlRange->Row ,$j);
$result[$sheetName]["ROW"][$finding - 1][$j - 1] = $cell->Text;
}
while($exlRange = $exlRange->Cells->Find($keyword)) {
if($exlRange->Address == $firstAddress)
break;
$finding++;
$result[$sheetName]["TEXT"][] = $exlRange->Text;
for($j = 1; $j <= count($result[$sheetName]["FIELD"]); $j++) {
$cell = $exlSheet->Cells($exlRange->Row ,$j);
$result[$sheetName]["ROW"][$finding - 1][$j - 1] = $cell->Text;
}
}
}
}
$exlBook->Close(false);
unset($exlSheets);
$exlObj->Workbooks->Close();
unset($exlBook);
$exlObj->Quit;
unset($exlObj);
}
?>
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
|
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
L'unica, se vuoi che funzioni su ogni SO, è esportare in CSV da Excel...
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Quote:
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
|
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
Inoltre molti hosting Windows non ti permettono di usare le funzioni odbc_* di php che si utilizzano per aprire Excel tramite driver odbc... Aruba ad esempio... Tempo fa per fare un sito in php che sia appoggiava sia a MySQL che a un file di Access mi è toccato fare la parte che doveva usare il file Access (una specie di elenco con vari dati) con ASP ed infilarla in un iframe... Vedo sopra che hai postato un esempioc he usa gli oggetti COM...addirittura quello è ancora meno compatibile e funziona solo su hosting Windows...senza contare che la maggior parte degli hosting disattiva questa feature (di nuovo Aruba)... Ultima modifica di cionci : 05-05-2005 alle 13:17. |
|
|
|
|
|
|
#8 |
|
Member
Iscritto dal: Feb 2001
Messaggi: 39
|
io per fortuna non ho problemi di hosting, il tutto dovrà poi girare in una intranet e il server ovviamente me lo faccio io... (per forza linux).
Mi rimane però il problema di esportare-convertire il foglio in automatico... sapete per caso se è possibile farlo senza passare da win? |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:56.



















