PhpExcel數組輸出到Excel瀏覽器下載


經常是mysql查出二維數組,並且數組的帶key也是有意義的,考慮到經常用,就打算弄個函數出來,方便以后用!

相對是規范的數組哈,具體可看下$data數組;

生成的excel第一行是對應的key;

 

直接上代碼:

<?php
/**
 * User: Klaus
 * Date: 2016/5/16 17:04
 */
date_default_timezone_set('PRC');
header("Content-type: text/html; charset=utf-8");
include "E:/klaus/work/PHPdiscuz/plugin/phpexcel/PHPExcel.php";//引入phpexcel

$data[] = array('uid' => 1, 'email' => 'asda@qq.com', 'password' => 'asdsadasd', 'password1' => 'asdsadasd',
    'password2' => 'asdsadasd');
$data[] = array('uid' => 1, 'email' => 'asda@qq.com', 'password' => 'asdsadasd', 'password1' => 'asdsadasd',
    'password2' => 'asdsadasd');
$data[] = array('uid' => 1, 'email' => 'asda@qq.com', 'password' => 'asdsadasd', 'password1' => 'asdsadasd',
    'password2' => 'asdsadasd');
$data[] = array('uid' => 1, 'email' => 'asda@qq.com', 'password' => 'asdsadasd', 'password1' => 'asdsadasd',
    'password2' => 'asdsadasd');
$data[] = array('uid' => 1, 'email' => 'asda@qq.com', 'password' => 'asdsadasd', 'password1' => 'asdsadasd',
    'password2' => 'asdsadasd');
$data[] = array('uid' => 1, 'email' => 'asda@qq.com', 'password' => 'asdsadasd', 'password1' => 'asdsadasd',
    'password2' => 'asdsadasd');
$data[] = array('uid' => 1, 'email' => 'asda@qq.com', 'password' => 'asdsadasd', 'password1' => 'asdsadasd',
    'password2' => 'asdsadasd');

arrToExcel($data,'lptest');


function arrToExcel($data,$name)
{
    //處理數據,獲取key
    $keys = array_keys($data[0]);
    $objPHPExcel = new PHPExcel();
    // 修改sheet名稱
    $objPHPExcel->getActiveSheet()->setTitle($name . '_' . date('Ymd_His'));
    // 讀取數組
    for ($j = 1; $j <= count($data); $j++) {
        for ($k = 1; $k <= count($data[0]); $k++) {
            $colname = PHPExcel_Cell::stringFromColumnIndex($k - 1); // 從o開始
            $colname .= $j;
            if ($j == 1) {
                $value = $keys[$k - 1];
            } else {
                $key = $keys[$k - 1];
                $value = $data[$j - 1][$key];
            }
            $objPHPExcel->setActiveSheetIndex(0)
                ->setCellValue($colname, $value);
        }
    }
    //設置列寬
    $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(49);

    // Set active sheet index to the first sheet, so Excel opens this as the first sheet
    $objPHPExcel->setActiveSheetIndex(0);
    // Redirect output to a client’s web browser (Excel5)
    header('Content-Type: application/vnd.ms-excel');
    header('Content-Disposition: attachment;filename=' . $name . '_' . date('Ymd_His') . '.xls');
    header('Cache-Control: max-age=0');
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
    $objWriter->save('php://output');
}

 結果如圖:

 

 

列數變下,行數變下:

 

結過如圖:

 

對了補充下,sheet的名字也是變得哦!

 

第一次:

 

 

第二次:

 

 

大功告成!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM