我正在创建两张包含数据的工作表,另一个工作表显示基于第一张工作表的一些计算,但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 确实返回计算值。