Avatar billede KurtG Forsker
26. oktober 2018 - 19:27 Der er 1 kommentar

fejl ved export fra PHP til excel

Jeg dumper fra en database nogle data til et Excel-ark.
Det har før virket fint, men nu kommer det med fejlmelding om, at Filformatet og Filtypenavnet ikke stemmer overens plus nogle advarsler.
Svarer jeg alligevel Ja, kommer data korrekt ind i Excel.
Programmer er som følger:

    function cleanData(&$str)
    {
        $str = preg_replace("/\t/", "\\t", $str);
        $str = preg_replace("/\r?\n/", "\\n", $str);
        if(strstr($str, '"')) $str = '"' . str_replace('"', '""', $str) . '"';
    }

Og derefter delen, der dumper data
    header("Pragma: public");
    header("Expires: 0");
    header("Pragma: no-cache"); 
    header("Content-Disposition: attachment; filename=\"$filename\"");
    header("Content-Type: application/vnd.ms-excel");
    $flag = false;
    foreach($data3 as $row)
    {
        if(!$flag)
        {
            // display field/column names as first row
            echo implode("\t", array_keys($row)) . "\r\n";
            $flag = true;
                }
        array_walk($row, __NAMESPACE__ . '\cleanData');
        echo utf8_decode(implode("\t", array_values($row)) . "\r\n");
    }
    exit;

Er der nogen, der har en ide om, hvad der er galt?
Avatar billede man man Praktikant
01. februar 2020 - 20:30 #1
Thank you so much for this. I w https://notepad.software/ as into this issue and tired to  tinker around to check if its possible but couldnt get it done. Now that i have seen the way you did it, thanks guys
with
regards
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Uanset kodesprog, så giver vi dig mulighederne for at udvikle det, du behøver.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester