创build新的工作表PHPExcel

我试图创build另一个工作表,一切工作正常。 但是我现在需要的是根据variables创build1。 例如 :

我有两个选项用于validation,一个用于结果。 一切都由一个称为$resultado的布尔variables来调节。

我在CakePHP中有我的组件

 function ExcelCargaMasivaComponent() { $this->xls = new PHPExcel(); $this->sheet = $this->xls->getActiveSheet(); $this->sheet->setTitle("Worksheet"); $this->sheet->getDefaultStyle()->getFont()->setName('Verdana'); $this->xls->createSheet(); $this->xls->setActiveSheetIndex(1); $this->validations = $this->xls->getActiveSheet(); $this->validations->setTitle('Validations'); } 

其中this->validation是第二个工作表。 现在,我需要这个工作表具有不同的名称,因此我希望其他数据封装在一个函数中。 所以我的函数这样生成想要的条件:

 function ExcelCargaMasivaComponent() { $this->xls = new PHPExcel(); $this->sheet = $this->xls->getActiveSheet(); $this->sheet->setTitle("Worksheet"); $this->sheet->getDefaultStyle()->getFont()->setName('Verdana'); $this->xls->createSheet(); $this->xls->setActiveSheetIndex(1); } function generate($title = 'Report', $headers = array(), $data = array(), $uid = false, $resultados = false){ if($resultados){ $this->validations = $this->xls->getActiveSheet(); $this->validations->setTitle('Resultados'); }else{ $this->validations = $this->xls->getActiveSheet(); $this->validations->setTitle('Validations'); } } 

我这样做,以便第二张有不同的名称和不同的数据取决于variables,但我不能得到它的工作。 我只根据variables生成1张标题,这不是我想要的。

创build新的工作表PHPExcel

嗨,我真的不知道我的答案是否真的可以为你的问题提供魔法。 不过,这似乎令我着迷。

回答:
只要尝试做下面的代码generate方法,我已经提供了下面的代码片段:

 function ExcelCargaMasivaComponent() { $this->xls = new PHPExcel(); $this->sheet = $this->xls->getActiveSheet(); $this->sheet->setTitle("Worksheet"); $this->sheet->getDefaultStyle()->getFont()->setName('Verdana'); // $this->xls->createSheet(); // comment out this lines as we keep // $this->xls->setActiveSheetIndex(1); // them in our generate method } function generate($title = 'Report', $headers = array(), $data = array(), $uid = false, $resultados = false) { if ($resultados) { $this->xls->createSheet(0); $this->xls->setActiveSheetIndex(0); // This is the first required line $this->validations = $this->xls->getActiveSheet(); $this->validations->setTitle('Resultados'); } else { $this->xls->createSheet(1); $this->xls->setActiveSheetIndex(1); // This is the second required line $this->validations = $this->xls->getActiveSheet(); $this->validations->setTitle('Validations'); } } 

为了您的进一步参考,请参阅以下SO Q&A线程。