3

データを含む 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の問題だと思います。

4

0 に答える 0