ho bisogno appunto di una funzione che prende in input il nome di un file excel, e restituisce un array diarray associativi con il contenuto del file excel.
la firma della funzione tipo
function getExcelData($excelfilepath) {
return $exceldata;
}
l'array di array associativi che ritorna deve essere un array in cui ogni elemento dell'array è una riga del file excel (la prima riga contieneil nome delle colonne):
$exceldata[0] è la riga 2
$exceldata[1] è la riga 3
...
$exceldata[n] è la riga ennesima-2
Quindi l'array ha 3 elementi (la prima contiene il nomedelle colonne).
Ogni riga, quindi ogni elemento dell'array, è a sua volta un arrayassociativo che contiene i dati della riga:
$exceldata[0]["campo1"] contiene quindi 1 così come$exceldata[2]["pippo"] contiene 3
io di mio mi sono un attimo messo e ho fatto una cosa come questa utilizzando la classe phpoffice/phpexcel
codice:
$inputFileName=$UploadDirectory . $FileName;
function getExcelData($inputFileName){
$inputFileName=$UploadDirectory . $FileName;
try {
$inputFileType = PHPExcel_IOFactory::identify($inputFileName);
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$phpExcel = $objReader->load($inputFileName);
$sheet = $phpExcel->getSheet(0);
} catch (Exception $e) {
echo $e->getMessage();
}
$highestrow = $sheet->getHighestRow();
$highestcolumn = $sheet->getHighestColumn();
$columncount = PHPExcel_Cell::columnIndexFromString($highestcolumn);
$titles = $sheet->rangeToArray('A1:' . $highestcolumn . "1");
$body = $sheet->rangeToArray('A2:' . $highestcolumn . $highestrow);
$table = array();
for ($row = 0; $row <= $highestrow - 2; $row++) {
$a = array();
for ($column = 0; $column <= $columncount - 1; $column++) {
$a[$titles[0][$column]] = $body[$row][$column];
}
$table[$row] = $a;
}
var_dump ($table);
return $table;
}
ma non funziona... qualcuno che puo aiutarmi?