سلام یه برنامه دارم که خروجی اکسل قبول میکنه و نمرات سه سال رو میگیره و جمع میکنه و فقط نمرات سال نهم رو ضرب در سه میکنه و در اخر بعد از جمع همه میگه که اون شخص قبول شده یا نه و توی گروه الف یا به میگزارتش توی فایل اکسل من : <?php
session_start();

require 'db.php';
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\IOFactory;

// Redirect if not logged in
if (!isset($_SESSION['user_id'])) {
header("Location: register.php");
exit;
}

$full_name = $_SESSION['full_name'] ?? 'نام مشخص نشده';
$username = $_SESSION['username'] ?? 'کاربر';

$stmt = $pdo->prepare("SELECT max_students, students_uploaded FROM users WHERE id = ?");
$stmt->execute([$_SESSION['user_id']]);
$userSettings = $stmt->fetch(PDO::FETCH_ASSOC);

$maxStudentsAllowed = $userSettings['max_students'] ?? 250;
$studentsUploaded = $userSettings['students_uploaded'] ?? 0;

$fieldsOfStudy = [
"نظری" => [
"ریاضی و فیزیک" => ["ریاضی" => 14, "علوم" => 13],
"علوم تجربی" => ["ریاضی" => 13, "علوم" => 14],
"علوم انسانی" => ["ادبیات فارسی" => 14, "مطالعات اجتماعی" => 12],
"معارف اسلامی" => ["ادبیات فارسی" => 14, "معارف اسلامی" => 14]
],
"فنی و حرفه‌ای" => [
"صنعت" => ["ریاضی" => 10, "کار و فناوری" => 12],
"خدمات" => ["کار و فناوری" => 12, "فرهنگ و هنر" => 12],
"کشاورزی" => ["علوم" => 10, "کار و فناوری" => 12],
"هنر" => ["فرهنگ و هنر" => 12, "کار و فناوری" => 12]
],
"کار و دانش" => [
"صنعت" => ["ریاضی" => 10, "کار و فناوری" => 12],
"خدمات" => ["فرهنگ و هنر" => 10, "کار و فناوری" => 12],
"کشاورزی" => ["علوم" => 10, "کار و فناوری" => 12],
"هنر" => ["فرهنگ و هنر" => 10, "کار و فناوری" => 12]
]
];

$gradeFields = [
'ریاضی' => ['ریاضی7', 'ریاضی8', 'ریاضی9'],
'علوم' => ['علوم7', 'علوم8', 'علوم9'],
'ادبیات فارسی' => ['ادبیات7', 'ادبیات8', 'ادبیات9'],
'مطالعات اجتماعی' => ['مطالعات7', 'مطالعات8', 'مطالعات9'],
'عربی' => ['عربی7', 'عربی8', 'عربی9'],
'معارف اسلامی' => ['معارف7', 'معارف8', 'معارف9'],
'کار و فناوری' => ['کاروفناوری7', 'کاروفناوری8', 'کاروفناوری9'],
'فرهنگ و هنر' => ['فرهنگ و هنر7', 'فرهنگ و هنر8', 'فرهنگ و هنر9']
];

function calculateAverages($rowData, $gradeFields) {
$averages = [];
foreach ($gradeFields as $subject => $fields) {
$vals = [];
foreach ($fields as $field) {
$vals[] = isset($rowData[$field]) ? floatval($rowData[$field]) : 0;
}
$avg = round(($vals[0] + $vals[1] + $vals[2]*3) / 5, 2);
$averages[$subject] = $avg;
}
return $averages;
}

function determineBranchAndField($avg) {
$math = $avg['ریاضی'] ?? 0;
$sci = $avg['علوم'] ?? 0;
$per = $avg['ادبیات فارسی'] ?? 0;
$art = $avg['فرهنگ و هنر'] ?? 0;
$tech = $avg['کار و فناوری'] ?? 0;
$rel = $avg['معارف اسلامی'] ?? 0;
$soc = $avg['مطالعات اجتماعی'] ?? 0;


if ($math >= 14 && $sci >= 13) return ['branch'=>"نظری", 'field'=>"ریاضی و فیزیک"];
elseif ($sci >= 14 && $math >= 13) return ['branch'=>"نظری", 'field'=>"علوم تجربی"];
elseif ($per >= 14 && $rel >= 14) return ['branch'=>"نظری", 'field'=>"معارف اسلامی"];
elseif ($per >= 14 && $soc >= 12) return ['branch'=>"نظری", 'field'=>"علوم انسانی"];
elseif ($art >= 12 && $tech >= 12) return ['branch'=>"فنی و حرفه‌ای", 'field'=>"هنر"];
elseif ($tech >= 12) {
    if ($math >= 10) return ['branch'=>"فنی و حرفه‌ای", 'field'=>"صنعت"];
    elseif ($sci >= 10) return ['branch'=>"فنی و حرفه‌ای", 'field'=>"کشاورزی"];
    else return ['branch'=>"فنی و حرفه‌ای", 'field'=>"خدمات"];
}
if ($art >= 10) return ['branch'=>"کار و دانش", 'field'=>"هنر"];
if ($math >= 10) return ['branch'=>"کار و دانش", 'field'=>"صنعت"];
if ($sci >= 10) return ['branch'=>"کار و دانش", 'field'=>"کشاورزی"];
return ['branch'=>"کار و دانش", 'field'=>"خدمات"];
}

function checkEligibility($averages, $fieldsOfStudy) {
$eligibleFields = [];
foreach ($fieldsOfStudy as $branch => $fields) {
$eligibleFields[$branch] = [];
foreach ($fields as $field => $criteria) {
$isEligible = true;
foreach ($criteria as $subject => $threshold) {
if (!isset($averages[$subject]) || $averages[$subject] < $threshold) {
$isEligible = false;
break;
}
}
$eligibleFields[$branch][$field] = $isEligible;
}
}
return $eligibleFields;
}

$uploadSuccess = false;
$errorMsg = '';
$studentsData = [];
$remainingStudents = $maxStudentsAllowed - $studentsUploaded;

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// فقط آپلود فایل اکسل
if (isset($_FILES['excelFile']) && $_FILES['excelFile']['error'] === UPLOAD_ERR_OK) {
$allowedTypes = [
'application/vnd.ms-excel',
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
'application/octet-stream',
];


    if (!in_array($_FILES['excelFile']['type'], $allowedTypes)) {
        $errorMsg = "❌ فرمت فایل معتبر نیست. لطفا فایل اکسل ارسال کنید.";
    } elseif ($_FILES['excelFile']['size'] > 5 * 1024 * 1024) {
        $errorMsg = "❌ حجم فایل بیش از حد مجاز است.";
    } else {
        try {
            $tmpName = $_FILES['excelFile']['tmp_name'];
            $spreadsheet = IOFactory::load($tmpName);
            $worksheet = $spreadsheet->getActiveSheet();
            $rows = $worksheet->toArray();
            
            if (count($rows) < 2) {
                $errorMsg = "❌ فایل خالی است یا هدرهای معتبری ندارد.";
            } else {
                $headers = array_shift($rows);
                $studentCount = count($rows);
                $totalUsed = $studentsUploaded + $studentCount;
                $remainingStudents = max(0, $maxStudentsAllowed - $totalUsed);
                
                if ($totalUsed > $maxStudentsAllowed) {
                    $errorMsg = "⚠️ شما می‌توانید فقط {$remainingStudents} دانش آموز دیگر آپلود کنید.";
                } else {
                    $stmt = $pdo->prepare("UPDATE users SET students_uploaded = ? WHERE id = ?");
                    $stmt->execute([$totalUsed, $_SESSION['user_id']]);
                    $uploadSuccess = true;

                    foreach ($rows as $row) {
                        $studentData = array_combine($headers, $row);
                        $averages = calculateAverages($studentData, $gradeFields);
                        $branchField = determineBranchAndField($averages);
                        $eligibleFields = checkEligibility($averages, $fieldsOfStudy);
                        $studentsData[] = [
                            'info' => $studentData,
                            'averages' => $averages,
                            'branchField' => $branchField,
                            'eligibleFields' => $eligibleFields,
                        ];
                    }
                }
            }
        } catch (Exception $e) {
            $errorMsg = "❌ خطا در پردازش فایل اکسل: " . htmlspecialchars($e->getMessage());
        }
    }
}
}
?>

`; const printWindow = window.open('', '', 'width=900,height=700'); printWindow.document.write(` ${style} ${card.outerHTML} `); printWindow.document.close(); printWindow.focus(); printWindow.print(); printWindow.close(); } نمرات سه سال کنار همه اما حالا میخام از سایت سیدا نمرات رو بصورت پی دی اف خروجی بگیرم ولی سایت نمرات هر سال رو یه پی دی اف جدا میده میخام برنامه همون کار قبلی رو انجام بده فقط قابلیت گرفتن پی دی اف هم داشته باشه اینم کد سایت