Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    340

    Come leggere un file XLSX e scrivere in MYSQLI

    Salve a tutti,
    Ho un problema che devo risolvere in tempi ristretti ma devo chiedere un aiuto al Forum.
    Leggere un CSV e scrivere su Database non è un problema, ho risolto anche con grandi formati.
    Il problema nasce con utenti che non sono capaci di convertire il file XLSX in CSV.
    Devo poter leggere il file originale e registrarlo sul server.
    Qualcuno ha avuto esperienza del genere?

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,501
    Potresti usare PhpSpreadsheet per leggere i file xlsx, poi la parte di salvataggio su db resterà come la fai per gli altri formati.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    340
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Potresti usare PhpSpreadsheet per leggere i file xlsx, poi la parte di salvataggio su db resterà come la fai per gli altri formati.

    Avevo provato PHPexcell ma non sono riuscito a capirci granchè, la parte di esempio non funziona e non ti dà modo di capire, provo a scaricare questo, grazie.

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,501
    PHPExcel è abbandonato, il nuovo è quello che ti ho indicato io.

  5. #5
    Ciao PhpExcel è molto semplice, dopo che fai un form di upload basta che esplodi le righe come se fosse un DB

    codice:
    include '../Excel/vendor/autoload.php';
    if($_FILES["import_excel"]["name"] != '')
    {
    	 $allowed_extension = array('xls', 'csv', 'xlsx');
    	 $file_array = explode(".", $_FILES["import_excel"]["name"]);
    	 $file_extension = end($file_array);
    
    
    	 if(in_array($file_extension, $allowed_extension))
    	 {
    	$file_name = time() . '.' . $file_extension;
    	move_uploaded_file($_FILES['import_excel']['tmp_name'], $file_name);
    	$file_type = \PhpOffice\PhpSpreadsheet\IOFactory::identify($file_name);
    	$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader($file_type);
    		  $spreadsheet = $reader->load($file_name);
    
    
    		  unlink($file_name);
    
    
    		  $data = $spreadsheet->getActiveSheet()->toArray();
    
    
    		  foreach($data as $row)
    		  { 
                        echo $row[0]; //la colonna A
                        echo $row[1]; //la colonna B
                      }
                }
        }

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    340
    Grazie a tutti per le risposte, sempre gentili.
    Provo sicuro, il mio problema è che devo cercare di converire il tutto su CodeIgniter e molte volte mi crea problemi, anche di percorsi con le classi.
    Grazie ancora.

  7. #7
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Anni fa ho sviluppato una classe. Il link punta ad un sito francese. Non so se bisogna registrarsi per poter caricare il file.

    https://php.developpez.com/telecharg...ers-Excel-xlsx
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2022
    Messaggi
    77
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Potresti usare PhpSpreadsheet per leggere i file xlsx, poi la parte di salvataggio su db resterà come la fai per gli altri formati.
    Io ho necessità di leggere i file xlsx, ma non sono riuscito a capire come installare PhpSpreadsheet.
    Attualmente utilizzo "Excel/reader.php" (non so di preciso come si chiami la libreria), ma purtroppo legge solo i file xls.

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.