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]];
}