Я загружаю файл excel на веб-сайт и обрабатываю его для использования в базе данных.
Я использую функцию toArray()
чтобы получить все строки в массиве php.
Но я хочу пропустить первую строку (заголовок заголовка). Остальные строки будут сохранены в массиве.
Как пропустить первую строку.
Примечание. Я не могу использовать rangeToArray()
поскольку для получения строк в массиве не существует фиксированного диапазона. Это динамично. Все, что я хочу, это получить все строки, кроме первого.
Эко отвечает на половину проблемы, вы можете использовать rangeToArray (); но вам не нужно использовать цикл вообще:
$highestRow = $sheet->getHighestRow(); $highestColumn = $sheet->getHighestColumn(); $sheetData = $sheet->rangeToArray( 'A2:' . $highestColumn . $highestRow, NULL,TRUE,FALSE );
В качестве альтернативы используйте toArray()
а затем просто unset
первый элемент из возвращаемого массива
Вы можете добиться этого, используя array_shift :
$toArray = $worksheet->toArray() array_shift($toArray);
Я создаю функцию для чтения файла excel с использованием PHPExcel, как показано ниже:
function Read_Excel($fname=null,$isheet=0,$irow=1,$icol='A'){ $inputFileName = $fname; try { $inputFileType = PHPExcel_IOFactory::identify($inputFileName); $objReader = PHPExcel_IOFactory::createReader($inputFileType); $objPHPExcel = $objReader->load($inputFileName); } catch(Exception $e) { die('Error loading file "'.pathinfo($inputFileName,PATHINFO_BASENAME).'": '.$e->getMessage()); } $sheet = $objPHPExcel->getSheet(intval($isheet)); $highestRow = $sheet->getHighestRow(); $highestColumn = $sheet->getHighestColumn(); for ($row = intval($irow); $row <= $highestRow; $row++){ // Read a row of data into an array $rowData = $sheet->rangeToArray($icol . $row . ':' . $highestColumn . $row,NULL,TRUE,FALSE); $rec_tbl[] = $rowData[0]; } return $rec_tbl; }
вам просто нужно изменить $irow=1
в параметрах функции, чтобы получить $irow=1
вам строку.