データを含む 2 つのシートを作成し、別のシートには最初のシートに基づく計算が表示されますが、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');
PHP Excelは計算値を返すため、Laravel Excelの問題だと思います。