我创建两张包含数据的纸张,另一张纸张显示基于第一张纸张的一些计算,但sumproduct()
公式在创建工作表时无法正常工作。
相同的公式直接适用于工作表。
另外phpexcel方法getCalculatedValue()
得到正确的值,任何人都对此有任何想法?请帮助。
Excel::create('Payroll Report', function($excel) use($custom, $dates) {
$excel->sheet('General', function($sheet) use($custom) {
$sheet->row(1, array('Rep Name', 'Percent', 'Package Purchase Date', 'Rep Comm'));
$sheet->setAutoSize(true);
$i = 2;
foreach ($custom as $value2) {
foreach ($value2 as $value) {
$sheet->setColumnFormat(array(
'A'.$i.':A'.$i => '@'
));
$sheet->setColumnFormat(array(
'D'.$i.':D'.$i => '$#,##0.00_);($#,##0.00)'
));
$sheet->row($i, array(
$value['rep_name'], $value['percent'], $value['purchase_date'], $value['rep_comm']
));
$i++;
}
}
});
$excel->sheet('Payroll Report', function($sheet) use($custom, $dates) {
$sheet->row(1, array('Rep Name', '', '', $dates[1], $dates[2], $dates[3], $dates[4], $dates[5], $dates[0], 'Total'));
// $sheet->setAutoSize(true);
$sheet->cells('A1:I1', function($cells) {
// Set font
$cells->setFont(array(
'family' => 'Calibri',
'size' => '12',
'bold' => true
));
});
//here returns blank value
$sheet->setCellValue('A5', "=SUMPRODUCT((General!A2:A14=\"rachel\")*((General!B2:B14)=20),General!D2:D14)");
// gets value correctly
$abc = $sheet->getCell('A5')->getCalculatedValue();
$sheet->setCellValue('A6', $abc);
});
})->export('xls');
我认为这是Laravel Excel的一个问题,因为PHP Excel会返回计算值。