Autor | Zpráva | ||
---|---|---|---|
Radek Cvek Profil |
#1 · Zasláno: 2. 2. 2011, 19:19:44 · Upravil/a: Radek Cvek
Jednoduchá věc na pár řádků:
<?php header('Content-type: text/html; charset=utf-8',true); $data='<table border="1"><tr><td>Travička</td><td>5 Kč</td></tr><tr><td>Kravička</td><td>500 Kč</td></tr></table>'; $fp = fopen ("images/soubor.xls", "w"); fwrite ($fp, $data); fclose ($fp); ?> Vytvoří mě soubor do Excellu, ale se špatnou diakritikou! PHP manuál: fwrite ($fp, "\xEF\xBB\xBF".utf8_encode($data)); nefunguje fwrite ($fp, "\xEF\xBB\xBF".$data); nefunguje fwrite ($fp, chr(255).chr(254).mb_convert_encoding( $data, 'UTF-16LE', 'UTF-8')); jediný vytvoří správnou diakritiku, ale zase jsem bez tabulky (je to pro csv pro excell) tak jsem to celé udělal v tom UTF-16LE, ale taky nefunguje Špatnou diakritikou myslím: TraviÄÂヘka 5 KÄÂヘ Ještě bych měl dodat, že to otvírám v Open Office a s jinými soubory (ani s těmi vyexportovánými z phpMyAdmina) problémy nemám. Pokud to nahraju do databáze a vyexportuju, je to bez chybičky. |
||
Alphard_ Profil * |
#2 · Zasláno: 2. 2. 2011, 20:29:34
Pro OpenOffice není utf implicitní. Hlavička header je k ničemu (ta je poslána prohlížeči, soubor nemůže ovlivnit).
Dle http://neowiki.neooffice.org/index.php/Importing_HTML_Tables_into_a_Calc_Document jsem zkusil následující verzi, která mi fungovala. <?php $data=' <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> <table border="1"> <tr><td>Travička</td><td>5 Kč</td></tr> <tr><td>Kravička</td><td>500 Kč</td></tr> </table>'; $fp = fopen ("calc_03.xls", "w"); fwrite ($fp, $data); fclose ($fp); PS: pojmenovávat to *.xls je zavádějící, tohle nejsou soubory Excelu. PS2: „Vytvoří mě soubor do Excellu“ Excel se píše jen s jedním L. Mně pomíjím :-) |
||
Radek Cvek Profil |
#3 · Zasláno: 2. 2. 2011, 20:54:11
Alphard:
Supr - díky. Já s eNkama můžu šetřit, ale že miliardová společnost šetří s eLkama, mě překvapilo. |
||
Časová prodleva: 13 let
|
0