PHP: Jak číst ze souborů XLS

Update 2012: toto je stará verze článku někdy z roku 2006, dnes již existují parádní knihovny na čtení - http://code.google.com/p/php-excel-reader/ nebo http://phpexcel.codeplex.com/.

V PHP není sama o sobě možnost jak číst ze souborů ve formátu XLS. Stojíte-li před problémem jak dostat data z XLS souboru do aplikace v nějakém lepsím formátu, zde je řešení. V Javě je napsaná knihovna pro čtení XLS souborů a jednou z funkcí je jejich převod do formátu CSV, se kterým se dá už docela pohodlně v PHP pracovat. Jde o Java Excel API.

Pro spuštění je na serveru vyžadováno Java 2 JDK - jak na to není předmětem tohoto článku, určitě to s pomocí Google najdete a nastavíte :-)

Následuje kód, kterým provedeme zavolání komponenty Java Excel API a načteme výstup z převodu XLS souboru. Je třeba správně nastavit cestu kde je instalováno Java Excel API.

$pp = popen ("java -jar /cesta_k_jexcelapi/jxl.jar -csv ".$file, "r"); // $file - cesta ke XLS souboru
if($pp)
{
    while( !feof( $pp ) )
    {
      $output .= fgets( $pp, 4096);
    }
    pclose($pp);
}

V proměnné $output je převedený XLS soubor do formátu CSV a je možné s ním dále pracovat (buď přímo zpracovat nebo uložit do souboru a potom pomocí funkce fgetcsv() načíst a zpracovat).


Zpět na hlavní stránku