2014-12-02 105 views
0
<?php 
    //Initialize variables for downloads 
    $report_name = $_POST['herd-reports-download-name']; 
    $filetype = $_POST['group1']; 
    $farm_id = $_POST['farm_id']; 
    $username = $_POST['user_name']; 
    $json_array = json_decode($_POST['table_data'], true); 
    $wksDescription = "Report generated for farm"; 

    //Branch casing depending on filetype 
    switch($filetype) { 
    case 'PDF': 
     generate_pdf(); 
     break; 
    case 'Excel': 
     generate_excel(); 
     break; 
    } 

    //Functions for downloads here. 
    function generate_pdf() { 
    //echo 'pdf'; 
    } 

    function generate_excel() { 
    //echo 'excel'; 
    require '../includes/libraries/PHPExcel/Classes/PHPExcel.php'; 

    $objPHPExcel = new PHPExcel(); //Spreadsheet generated, one worksheet is always added to it. 

    $cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_in_memory_serialized; 
    PHPExcel_Settings::setCacheStorageMethod($cacheMethod); //Serializes to cut memory usage slightly at a minor performance hit. 

    $objPHPExcel->getProperties()->setCreator("myself") 
           ->setLastModifiedBy("myself") 
           ->setTitle("Report for a farm") 
           ->setSubject("A report") 
           ->setDescription($wksDescription) 
           ->setKeywords("office 2007 etc") 
           ->setCategory("Report File"); 

    $objPHPExcel->setActiveSheetIndex(0) 
       ->setCellValue('A1', 'Snoop Dawg'); 
    //Once it's done, begin prep to output to browser 
    $objPHPExcel->setActiveSheetIndex(0); 
    header('Content-Type: application/vnd.ms-excel'); 
    header("Content-Disposition: attachment;filename=vroom"); 
    header('Cache-Control: max-age=1'); 
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); 
    $objWriter->save('php://output'); 
    } 
?> 

我的問題是關於setDescription()並設置文件名,爲什麼php變量不工作?目前他們在這些領域沒有任何回報。這可能是以某種方式操縱它們的問題,因爲setDescription()將一個字符串作爲參數,並且傳遞一個字符串,但它不起作用。什麼都沒有被返回。PHPExcel將PHP變量傳遞給電子表格屬性

文件下載正常,但沒有嚴格傳遞字符串的屬性沒有被設置。

回答

1

嘗試在函數內做出該變量的全局變量。

function generate_excel() { 
global $wksDescription; 

該變量在函數的作用域內不存在,除非您從外部拉入它。

+0

我不能相信我錯過了。 – Orpheus 2014-12-02 16:51:59