2016-12-29 42 views
0

難道不可以像這樣用PHPexcel創建函數嗎?PHPexcel as function

$objPHPExcel = new PHPExcel(); 

global $objPHPExcel; 

function Create($title, $index) 
{ 
    global $objPHPExcel; 

    $objPHPExcel->setActiveSheetIndex($index); 
    $objPHPExcel->getActiveSheet()->setTitle($title); 
} 


Create('Title1', 0); 
Create('Title2', 1); 

我得到這個錯誤:致命錯誤:1片材的實際數量是1

:帶有消息「你試圖設置由出界指數的活性片材未捕獲的異常「PHPExcel_Exception」
+1

檢查您的錯誤信息,在爲'Create'你傳遞'1'作爲'$ index'第二個電話,似乎你的Excel文件只有一張。 – yorodm

回答

0

你錯過了createSheet()這是每次你需要......好吧...創建一個新的Excel工作表。我還將對象作爲參數傳遞給函數,並使用類型提示僅允許該對象具有所需的類型(在您的情況下爲PHPExcel)。

$objPHPExcel = new PHPExcel(); //Create your object 

    function Create(PHPExcel $objPHPExcel, $title, $index) //Set param object to be of Type PHPExcel (Type Hinting) 
    { 

     $objPHPExcel->setActiveSheetIndex($index); 
     $objPHPExcel->getActiveSheet()->setTitle($title); 
     $objPHPExcel->createSheet(); //New Sheet 

    } 

    Create($objPHPExcel, 'Title1', 0); //Set Object For Each Param 
    Create($objPHPExcel, 'Title2', 1); //Set Object For Each Param 

參見:

http://php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration