Laravel Excel使用Sumproduct Excel公式返回空白值

时间:2016-04-07 10:19:23

标签: laravel laravel-excel

我创建两张包含数据的纸张,另一张纸张显示基于第一张纸张的一些计算,但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会返回计算值。

0 个答案:

没有答案