lijst excel importeren php

Importeer Excel bestanden met PHP

Het importeren van excel bestanden via PHP kan gemakkelijk via een CSV bestand. Het excel bestand .xls kan door excel worden omgezet naar een .csv. Vervolgens gaan we het .csv bestand in PHP openen met de functie fopen.

Wanneer je het bestand hiermee aanroept moet je altijd kijken of het PHP script en het .csv bestand in dezelfde directory staan. In de meeste gevallen is de hoofd directory (map): public_html of private_html bij online websites of je hosting. Wanneer beide bestanden zich in dezelfde map bevinden kan vervolgens het csv bestand geopend worden door het script.

PHP While CSV loop maken

Vervolgens gaan we met de loop door het datasheet van excel heen, in dit geval hebben wij 2 rijen dit zijn rij 0 en rij 1. Dit betekent dat wij per lijn dus 2 waardes hebben en dit zijn de ‘Naam van het bedrijf’ en het ‘Telefoonnummer van het bedrijf’ zoals aangegeven in de afbeelding.

.CSV importeren naar PHP

<?php
// Hier kijken we met fopen of bestandsnaam.csv aanwezig is en geven het de r (Read) waarde om te lezen. Tegelijk stellen we gelijk $handle in met de fopen waardes.

if (($handle = fopen(“bestandsnaam.csv”, “r”)) !== FALSE) { 
    // Vervolgens gaan we vragen aan het script of het waar is dat $data = fgetcsv meer dan 1000 bytes bevat en de resultaten opdelen per komma zoals hoe de csv bestanden worden opgeslagen.
    while (($data = fgetcsv($handle, 1000, “,”)) !== FALSE) {
        $num = count($data); // Het nummer van het resultaat slaan we op in $nummer
        $row++; // We maken de variabel elke resultaat +1 optellen ;
        for ($c=0; $c < $num; $c++) { // We stellen de variabel $c in op 0 vervolgens kijken we of deze lager is als het $nummer en wanneer dat zo is voegen we achteraf +1 toe aan $c.
           if ($c == 0) {
                // We kijken of $c 0 is wat in het eerste geval altijd waar is, dus de word de eerste rij met de namen opgeslagen in een nieuwe lijst waarbij wij elke keer een komma aan de lijst toevoegen

                // Wanneer je $variabel = ‘test1’; plaatst geef je de variabel een volledig nieuwe waarde. Wanneer je in dit geval $variabel .= ‘test2’; doet nadat je de variabel al een keer hebt ingesteld voegt hij de variabels samen en wordt de uitkomst van $variabel in dit geval: test1test2.

                // Zo slaan we dus van elke rij de naam op in de $namen variabel. Verder moeten we nog uit de rij het nummer halen van de hoeveelste rij je wilt toevoegen in de variabel. Dit kan door de array uit te lezen met $data[2] om bijvoorbeeld het derde resultaat te krijgen of $data[0] voor het eerste resultaat. In dit geval zitten wij in de loop dus blijven we de namen bijvoegen bij $namen met daar achter nog een komma om ze te scheiden.

                $namen .= $data[$c] . “,”;

            } else {

                // Wanneer het dus niet de eerste rij bevat maar de tweede behoort het tot de 2e kolom en dus de telefoon nummers.
                $nummers .= $data[$c] . “,”;
            }
        }
    }
    fclose($handle); // Hier sluiten we weer de open csv functie.
    $namen = explode(‘,’,$namen); // Hier gaan we de variabel met namen omzetten naar een Array en scheiden op basis van de komma.
    $nummers = explode(‘,’,$nummers); // Ook de nummers plaatsen we in een array.

    // Vervolgens gaan we weer met een for loop kijken in de array en actie per rij nemen.
    for ($i = 0; $i < count($namen); $i++) { // Voor $i = 0, Wanneer de $i lager is dan het totaal aantal $namen in de array vervolgens doen wij elke keer de $i++ (index getal) om door te gaan met tellen tot het laatste resultaat.

        // Hier gaan we de arrays uitprinten per resultaat in de array zoals in de for is aangegeven. We printen de resultaten met de echo functie. Wanneer je in een PHP string naast tekst een variabel wilt toevoegen dien je eerst voor de $variabel een hoge komma en punt te plaatsen en daarna ook een punt en hoge komma. In dit geval wanneer je de HTML wilt hebben van een string schrijf je $variabel = ‘Dit is normale tekst’.$var.’ en dit ook’;
        echo ‘naam: ‘.$namen[$i].’ met nummer:’.$nummers[$i].'<br />’;
    }
}
?>

Excel rijen in aparte strings plaatsen

We gaan vervolgens dus de waardes van de namen in een aparte strings plaatsen en de telefoon nummers ook apart zodat we deze allebei kunnen gebruiken indien nodig. Dit doen we door een loop te maken met een variabel om te kijken of deze in kolom 0 of 1 staat.

Vervolgens roepen we fclose aan om het bestand weer te sluiten. Van de strings gaan we array’s maken door ze aan te roepen met de explode functie gebaseerd op de komma. Wat dit doet is als volgt:

String uit CSV omzetten naar Array

Wanneer je een string hebt die het volgende bevat: ‘A’,’B’,’C’ wordt deze opgedeeld in een array. Bij een array kan je per key de waarde aanroepen en dus kijken wat er op welke positie in de array staat. Als zoals bij het opgegeven voorbeeld bijvoorbeeld de array wordt aangeroepen kan je het resultaat: B krijgen door de array aan te roepen met $nummers[1]. Wanneer je in dit geval A wilt aanroepen gebruik je $nummers[0] of bij C $nummers[2].

Zodoende kan je de informatie uit een array per stuk weer gebruiken in een foreach of while loop om andere functies mee uit te voeren. De 0 telt in het geval van array’s als de eerste waarde van de array in plaats van een 1.

Classes en Functies in PHP

Het volgende artikel gaan we beginnen met het werken met classes en functies. Vervolgens gaan we de classes en functies gebruiken om data in de MySQL database op te slaan zodat we hier later gebruik van kunnen maken. Daarnaast kunnen er extra variabels gemaakt worden in de Database die aangepast en uitgelezen kunnen worden weer via PHP en SQL.

Meer lezen?

Volgende artikel

Leave a Reply