Как импортировать Excel в Specifi c лист в Codeigniter - PullRequest
0 голосов
/ 20 февраля 2020

Я пытаюсь прочитать только один лист из документа xls, и у меня есть это:

$sheetname = 'Sheet1'; 
            $path = $_FILES["file"]["tmp_name"];
            $object = PHPExcel_IOFactory::load($path);
            $objectr = $object->getSheet(0);
            foreach($objectr->getWorksheetIterator() as $worksheet)
            {
                $highestRow = $worksheet->getHighestRow();
                $highestColumn = $worksheet->getHighestColumn();
                for($row=2; $row<=$highestRow; $row++)
                {
                    $date= $worksheet->getCellByColumnAndRow(0, $row)->getValue();
                    $name= $worksheet->getCellByColumnAndRow(1, $row)->getValue();
                    $old= $worksheet->getCellByColumnAndRow(2, $row)->getValue();
                    $data[] = array(
                        'date'  =>  $date,
                        'name'  =>  $name,
                        'old'   =>  $old
                    );
                }
            }
             $this->db->insert_batch('tbl_trx', $data);
            unlink(realpath('excel/'.$data_upload['file_name']));
            $this->session->set_flashdata('success','Berhasil successData');
            redirect('transaction');

Проблема в том, что он читает все листы файла.

Любые идеи

1 Ответ

0 голосов
/ 21 февраля 2020

Проверьте имя листа, используя

$title = $sheet->getTitle(); $objWorksheet = $objPHPExcel->getSheetByName($title);

Пример кода следующий

$objReader = PHPExcel_IOFactory::createReader('Excel2007');
                //set to read only
                $objReader->setReadDataOnly(true);
                //load excel file   
                $objPHPExcel = $objReader->load('upload/'.$file_name);
                $sheetnumber = 0;
                foreach ($objPHPExcel->getWorksheetIterator() as $sheet){

                $title = $sheet->getTitle();    // get the sheet name 
                $sheet= str_replace(' ', '', $title); // remove the spaces between sheet name 
                $sheet= strtolower($sheet); 
                $objWorksheet = $objPHPExcel->getSheetByName($title);

                $lastRow = $objPHPExcel->setActiveSheetIndex($sheetnumber)->getHighestRow(); 
                $sheetnumber++;

                if($sheet=='YOUR SHEET NAME HERE '){ // NOTE HERE I CHECK SHEET NAME 

                // YOUR FURTHER CODE HERE 

                for($j=2; $j<=$lastRow; $j++){
                $date = $objWorksheet->getCellByColumnAndRow(0,$j)->getValue();

                }

                }
...