Výpis tabulky z UTF-8 přímo do Excelu

Odesláno v February 25, 2008 | Kategorie webdesign | Leave a Comment

Moc se mi líbí kategorická tvrzení. Jedno z nich třeba vyhlásil Radek Hulán (nic proti němu), že Office 2007 je o 10let před konkurencí.

To může být velmi potěšující zpráva zvlášť v okamžiku, kdy se marně snažíte importovat data z databáze MySQL do Excelu ve znakové sadě UTF-8, na jejíž podporu Billy se Stevem tak nějak pozapomněli. Netuším co k tomu vedlo vývojáře tohoto pokrokového software, ale já jsem měl zase o jednu starost navíc.

Tak co s tím? Překódovat samozřejmě, na to je PHP machr, ale do čeho? Windows-1250 jsem zavrhl, je potřeba taky vyexportovat věci v azbuce. Volba padla na nejrychleji nalezené řešení : UTF-16 little endian.

Pokud na začátek přidáme ještě správnou hlavičku, můžeme data rovnou i otevřít v Excelu.

Taky nesmíme zapomenout na znaky 0xFFFE označující znakovku UTF-16LE.


<?
header( "Content-type: application/vnd.ms-excel; charset=UTF-16LE" );
header('Content-Disposition: attachment; filename="export.csv"');
echo chr(255).chr(254).mb_convert_encoding( $vypis_csv, 'UTF-16LE', 'UTF-8');
?>

Komentáře

Váš komentář: