Не удается получить результат формулы из Excel с помощью PHPExcel - PullRequest
0 голосов
/ 15 октября 2018

У меня проблема с функцией импорта, в некоторых ячейках Excel у меня есть формула, подобная картинке ниже

enter image description here

и почему я не могуполучить результат формулы?Я искал в Google, там, как говорят, используют getCalculatedValue или getFormattedValue, но я не знаю, как внедрить в мой скрипт, вот мой следующий код:

$inputFileName =  './public/uploads/excel/'.$uploaded['file_name'];
        try {
            $inputFileType = IOFactory::identify($inputFileName);
            $objReader = IOFactory::createReader($inputFileType);
            $objPHPExcel = $objReader->load($inputFileName);
        } catch(Exception $e) {
            die('Error loading file "'.pathinfo($inputFileName,PATHINFO_BASENAME).'": '.$e->getMessage());
        }

        $sheet = $objPHPExcel->getSheet(0);
        $highestRow = $sheet->getHighestRow();
        $highestColumn = $sheet->getHighestColumn();

        for ($row = 3; $row <= $highestRow; $row++){                  //  Read a row of data into an array                 
            $rowData = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row, NULL, TRUE, FALSE);

             $data = array(
                "part_no"           => $rowData[0][0],
                "part_revised_no"   => $rowData[0][1],
                "part_latest_no"    => $rowData[0][2],
                "part_desc"         => $rowData[0][3],
                "part_incoming_date"=> $rowData[0][4],
                "part_fob_japan"    => $rowData[0][5],
                "part_min_order"    => $rowData[0][6],
                "part_master_key1"  => $rowData[0][7],
                "part_total_stock"  => $rowData[0][8],
                "part_stock_j"      => $rowData[0][9],
                "part_stock_b"      => $rowData[0][10],
                "part_stock_s"      => $rowData[0][11],
                "part_stock_m"      => $rowData[0][12],
                "part_rak"          => $rowData[0][13],
                "part_last_opname"  => $rowData[0][14],
                "part_discontinued" => $this->convDiscontinued($rowData[0][15]),
                "part_mesin_code"   => $rowData[0][16],
                "part_srp"          => $rowData[0][17],
                "part_srp_cod"      => $rowData[0][18],
                "part_supv_price"   => $rowData[0][19],
                "part_mgr_price"    => $rowData[0][20],
                "part_dtr_price"    => $rowData[0][21],
                "part_keterangan"   => $rowData[0][22],
            );

            $insert = $this->db->insert("sparepart", $data);
            // unlink($uploaded['file_path']);
        }

1 Ответ

0 голосов
/ 15 октября 2018

Вы можете сделать это:

$data = array( "part_no" => $sheet->getCellByColumnAndRow(0,0)->getCalculatedValue())
...