我正在尝试创建另一个工作表,一切正常。但我现在需要的是根据变量创建1。例如:
我有两个选项用于验证,一个用于结果。
一切都由名为$resultado
的布尔变量决定。
我在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');
}
这个 - >验证是第二个工作表。现在,我需要这个工作表有一个不同的名称,因此我希望其他数据封装在一个函数中。所以我的函数以这种方式生成所需条件:
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');
}
}
我这样做,以便第二张表具有不同的名称和不同的数据,具体取决于变量,但我无法让它工作。我只根据变量生成1张标题,这不是我想要的。
答案 0 :(得分:7)
嗨,我真的不知道我的回答是否真的能为你的问题带来魔力。然而,这对我来说似乎很有吸引力。
<强>答案:强>
只需尝试对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 Thread too.