Я загружаю файл 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
в параметрах функции, чтобы получить строку, которую вы хотели.