如何在Codeigniter的特定工作表中导入Excel

问题描述 投票:0回答:1

我试图从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');

问题是它读取了文件的所有工作表。

有什么想法吗?

excel codeigniter phpexcel
1个回答
0
投票

使用]查看工作表名称>

$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();

                }

                }
© www.soinside.com 2019 - 2024. All rights reserved.