2014年5月27日 星期二

PHPExcel

  • 不在 server 儲存檔案,直接下載匯出的 Excel
    $filename = date("Y-m-d") . ".xls";
    header('Content-type: application/vnd.ms-excel');
    header('Content-Disposition: attachment; filename="' . $filename . '"');
    //...(略)...
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
    $objWriter->save('php://output'); // 將資料儲存到 php://output
  • 和其他的 autoload 設定相沖,產生找不到 class 的錯誤訊息
    // 自己設定的 autoload
    function myAutoload($class_name) {
        require_once SITE_MODEL . "/{$class_name}.php";
    }
    spl_autoload_register('myAutoload');
    //...(略)...
    
    require_once 'PHPExcel.php';
    require_once SITE_COMMON . '/PHPExcel.php';
    // 發生錯誤 require_once(D:\Apache(x86)\htdocs\PHPExcel_Shared_String.class.php): failed to open stream: No such file or directory
    // 和 myAutoload 相沖了

    => 將其他的 autoload 設定先移除
    // 自己設定的 autoload
    function myAutoload($class_name) {
        require_once SITE_MODEL . "/{$class_name}.php";
    }
    spl_autoload_register('myAutoload');
    //...(略)...
    
    #var_dump(spl_autoload_functions()); // 查看目前有的 autoload 設定
    spl_autoload_unregister('myAutoload'); // 移除自己設定的 autoload
    
    require_once SITE_COMMON . '/PHPExcel.php';
    // 將相沖的autoload設定暫時移除,即可正常使用PHPExcel
  • 設定欄位背景色
    //設定欄位背景色(方法1)
    $objPHPExcel->getActiveSheet()->getStyle('A1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
    $objPHPExcel->getActiveSheet()->getStyle('A1')->getFill()->getStartColor()->setRGB('CCCCCC');
    
    //設定欄位背景色(方法1)
    $objPHPExcel->getActiveSheet()->getStyle('A1')->applyFromArray(
        array(
            'fill' => array(
                'type' => PHPExcel_Style_Fill::FILL_SOLID,
                'color' => array('rgb' => 'CCCCCC')
            )
        )
    );

參考:
http://stackoverflow.com/questions/8566196/phpexcel-to-download
http://www.php.net/manual/en/function.spl-autoload-register.php
http://www.php.net/manual/en/function.spl-autoload-functions.php
http://www.php.net/manual/en/function.spl-autoload-unregister.php
Yii引入PHPExcel修改其自動加載方法
PHP 輸出 Excel ,使用PHPExcel
Set Background cell color in PHPExcel

沒有留言:

張貼留言