2016-12-29 40 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