function addSheetSettings($sheetsRange, $dataSource_filePath, $sid) { foreach ($sheetsRange as $sheetName => $settings) { $arr_sheet_name[] = $sheetName; $arr_start_row[] = $settings['startRow']; $arr_start_column[] = $settings['startColumn']; } $filename = pathinfo($dataSource_filePath, PATHINFO_BASENAME); $sheets = array($arr_sheet_name, $arr_start_row, $arr_start_column); //check the headers from different sheets if (isReloadNeeded($filename, $arr_start_row)) { $process = new MatchSchemaExcelProcessor($dataSource_filePath, $sheetsRange); } else { $process = unserialize($_SESSION["excelPreview_{$sid}"][pathinfo($dataSource_filePath, PATHINFO_BASENAME)]); } $base_sheetNameNumber = Process_excel::getSheetNameIndex($dataSource_filePath, $sheets[0][0]); $baseHeader = $process->getHeader($base_sheetNameNumber, $sheets[1][0], $sheets[2][0]); for ($i = 1; $i < count($sheets[0]); $i++) { $arr_sheetNameNumber = $process->getSheetNameIndex($dataSource_filePath, $sheets[0][$i]); $arrHeader = $process->getHeader($arr_sheetNameNumber, $sheets[1][$i], $sheets[2][$i]); $diff_arr = array_diff($baseHeader, $arrHeader); if (!empty($diff_arr) || count($baseHeader) != count($arrHeader)) { exit("<div style=\"color:red\">Please choose the right row and column to get the same headers from different sheets</div>"); } } $sheetHeader[$arr_sheet_name[0]] = $baseHeader; $_SESSION["ktrArguments_{$sid}"][$filename]['baseHeader'] = $baseHeader; $_SESSION["ktrArguments_{$sid}"][$filename]["sheetNamesRowsColumns"] = $sheets; // each column name in option value will be prefixed with word file. return $sheetHeader[$arr_sheet_name[0]]; }