Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    funzione che prende in input il nome di un file excel, e restituisce un array di array associativi con il contenuto del file excel

    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?

  2. #2
    ho trovato una libreria che puo fare al caso mio, https://github.com/nuovo/spreadsheet-reader come faccio a includerla nella funzione?

    la funzione tipo che ho postato

    codice:
    • function readastable($sheet){
    • $highestrow = $sheet->getHighestRow();
    • $highestcolumn = $sheet->getHighestColumn();
    • $columncount =PHPExcel_Cell::columnIndexFromString($highestcolumn);
    • $titles = $sheet->rangeToArray('A1:'. $highestcolumn ."1");
    • $boddy = $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]]= $boddy[$row][$column];
    • }
    • $table[$row]= $a;
    • }
    • return $table;
    • }
    vorrei avere come return un eccezione tra file non trovato e file non excel solo xlsx, grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.