Создать файл Excel без библиотеки - PullRequest
0 голосов
/ 26 октября 2019

Я использую этот код:

header( "Content-Type: application/vnd.ms-excel" );
header("Content-Disposition: attachment; filename=liste.xls");

echo "\xEF\xBB\xBF";

, и я записываю свои данные SQL в цикле while, как это:

echo "\n<table><tr><td>".$first[$post_a]."</td>\t<td>".$second[$post_a]."</td>\t<td>".$third[$post_a]."</td>\t</td></tr></table>";

Когда я пытаюсь открыть этот созданный файл, Excel говоритверсия и тип не изменяются, поэтому я могу открыть файл после этого предупреждения на рабочем столе, но при попытке открыть на моем телефоне файл не открывается после предупреждения.

1 Ответ

0 голосов
/ 26 октября 2019

Тебе нужно что-то подобное здесь. Также игнорируйте мою логику в цикле for, возможно, захотите использовать свою собственную.

    $filename = "export_".date("m-d-Y_hia") . ".csv";
    ob_end_clean();
    $fp = fopen($filename,"w");

    $is_header = true;

    $no_meta_appnd = array('SKU','Name','Publish','Categories','Description');

    foreach ($res as $index => $product){
        $arr = array();

        if($is_header){ // put all the header in array
            foreach ($product as $index => $p){
                if(in_array($index,$no_meta_appnd)){
                    array_push($arr,$index);
                }else{
                    array_push($arr,"Meta: ".$index);
                }
            }
            $is_header = false;
            fputcsv($fp,$arr);  // add headers
            $arr = array();     // empty out array for first row
            foreach ($product as $index => $p){
                array_push($arr,$p);
            }
            fputcsv($fp,$arr);  // add first row after header
        }else{
            foreach ($product as $index => $p){
                array_push($arr,$p);
            }
            fputcsv($fp,$arr);  // rest of the rows
        }
    }
//unserialize();
    fclose($fp);

// download
//    header("Content-Description: File Transfer");
    header("Content-Disposition: attachment; filename=".$filename);
    header("Content-Type: application/csv; ");
    header('Pragma: no-cache');

    readfile($filename);

// deleting file
    unlink($filename);
    exit();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...