Autor Zpráva
kopi
Profil
Zdravím,
potřeboval bych poradit nebo nasměrovat na nějaký tutoriál. Jak udělat upload xls souboru se seznamem lidí a při uploadu rozpracovat tak, že co řádek v excelu se uloží jako řádek do databáze? V podstatě přesně to, co mají mailinkové softwary jako třeba Mailchimp. Tak jak to má mailchimp by bylo ještě ideálnější - zkopíruju xls soubor a v mailchimpu ho vložím do předem připravené tabulky a ono se to samo rozhází tak, že co sloupec v xls to sloupec v mailchimpu a pak to jen uložit.
všude jsem našel jen import před myadmin.

Mohl by mě někdo alespon nasměrovat, jak se to dělá?
děkuji.
Hando
Profil
Ahoj.
Na čtení xls souborů můžeš použít např. phpspreadsheet.readthedocs.io/en/latest. Vytáhneš si z toho sešitu data a následně si je už zpracuješ v php - např. uložíš do databáze atd.
Tutoriál na to asi ani není potřeba, víceméně je to procházení pole apd., prostě základní operace, které se v php provádějí.
kopi
Profil
Hando:
díky,
koukal jsem na to a určitě to zkusím. Ale jestli to chápu dobře, funguje to tak, že nahraju xls soubor a z něj to pak zpracuju? Existuje možnost, že budu mít na stránce předpřipravenou nějakou tabulku (jako v mailchimpu při importu konktatků) a do ní to prostě jen z excelu zkopíruju? Aniž bych musel uploadovat xls soubor?
Keeehi
Profil
Tak jestli ti jde jen o vstup, pak ti stačí jen obyčejná textarea. Když tam nakopíruješ část tabulky z Excelu tak jednotlivé hodnoty buněk jsou oddělené tabulátorem a řádky jsou snad jasné.
kopi
Profil
Keeehi:
to jsem netušil, že k tomu stačí textearea. Udělal jsem si funkci na rozdělení podle řádků.

        $seznam = preg_split("/\r\n|[\r\n]/", $_POST['import']);
        
        foreach ($seznam as $key => $row) {
            echo "$row<br/>";
        }

Jak to ještě rozdělím podle těch tabulátorů, abych to mohl vložit do db?
Keeehi
Profil
Klidně úplně stejně jako rozdělení na řádky
        $seznam = preg_split("/\r\n|[\r\n]/", $_POST['import']);
        
        foreach ($seznam as $row) {
            $bunky = preg_split("/\t/", $row);
            
            foreach ($bunky as $bunka) {
                echo "$bunka ";
            }
            echo "<br>";
        }
kopi
Profil
Keeehi:
super, děkuju. měl jsem to tak, akorát jsem nevěděl znak pro tabulátor \t.

Ještě jednou díky

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0