Export an Array of Arrays to Excel in php

后端 未结 3 1564
半阙折子戏
半阙折子戏 2020-12-09 22:27

I have an Array of arrays at the beginning of each sub array is the header of the column followed by integers that I want to populate the column. It looks something like thi

相关标签:
3条回答
  • 2020-12-09 22:32

    If you really want to export array to excel, have a look at PHPReport. I have written that class to simplify exporting with phpexcel. It supports xls and xlsx.

    0 讨论(0)
  • 2020-12-09 22:37

    The best way of exporting array to excel is here.

        $data = array(
             '0' => array('Name'=> 'Parvez', 'Status' =>'complete', 'Priority'=>'Low', 'Salary'=>'001'),
             '1' => array('Name'=> 'Alam', 'Status' =>'inprogress', 'Priority'=>'Low', 'Salary'=>'111'),
             '2' => array('Name'=> 'Sunnay', 'Status' =>'hold', 'Priority'=>'Low', 'Salary'=>'333'),
             '3' => array('Name'=> 'Amir', 'Status' =>'pending', 'Priority'=>'Low', 'Salary'=>'444'),
             '4' => array('Name'=> 'Amir1', 'Status' =>'pending', 'Priority'=>'Low', 'Salary'=>'777'),
             '5' => array('Name'=> 'Amir2', 'Status' =>'pending', 'Priority'=>'Low', 'Salary'=>'777')
            );
            $filename =  time().".xls";      
            header("Content-Type: application/vnd.ms-excel");
            header("Content-Disposition: attachment; filename=\"$filename\"");
    
            ExportFile($data);
            function ExportFile($records) {
                $heading = false;
                    if(!empty($records))
                      foreach($records as $row) {
                        if(!$heading) {
                          // display field/column names as a first row
                          echo implode("\t", array_keys($row)) . "\n";
                          $heading = true;
                        }
                        echo implode("\t", array_values($row)) . "\n";
                    }
                exit;
            }
    
    0 讨论(0)
  • 2020-12-09 22:38

    Excel can open csv file directly ... try

    $array = Array (
            0 => Array (
                    0 => "How was the Food?",
                    1 => 3,
                    2 => 4 
            ),
            1 => Array (
                    0 => "How was the first party of the semester?",
                    1 => 2,
                    2 => 4,
                    3 => 0 
            ) 
    );
    
    header("Content-Disposition: attachment; filename=\"demo.xls\"");
    header("Content-Type: application/vnd.ms-excel;");
    header("Pragma: no-cache");
    header("Expires: 0");
    $out = fopen("php://output", 'w');
    foreach ($array as $data)
    {
        fputcsv($out, $data,"\t");
    }
    fclose($out);
    
    0 讨论(0)
提交回复
热议问题