<?php
require_once '../vendor/autoload.php';

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

// Create new Spreadsheet object
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();

// Set header row dengan tambahan kolom No.
$headers = [
    'No.', 'NISN', 'NIS', 'Nama Lengkap', 'Nama Panggilan', 'Jenis Kelamin (L/P)', 
    'Tempat Lahir', 'Tanggal Lahir', 'Agama', 'Kewarganegaraan', 'Anak Ke',
    'Jumlah Saudara Kandung', 'Jumlah Saudara Tiri', 'Jumlah Saudara Angkat',
    'Status Anak (Kandung/Tiri/Angkat)', 'Bahasa Sehari-hari', 'Alamat', 'No HP',
    'Tinggal Dengan (Orang Tua/Saudara/Asrama/Kos)', 'Jarak ke Sekolah', 
    'Golongan Darah (A/B/AB/O)', 'Riwayat Penyakit', 'Kelainan Jasmani',
    'Tinggi Badan (cm)', 'Berat Badan (kg)', 'Tanggal Diterima'
];

$sheet->fromArray($headers, NULL, 'A1');

// Set column widths
$sheet->getColumnDimension('A')->setWidth(5);  // Kolom No.
$sheet->getColumnDimension('B')->setWidth(15); // NISN
$sheet->getColumnDimension('C')->setWidth(15); // NIS
$sheet->getColumnDimension('D')->setWidth(25); // Nama Lengkap
$sheet->getColumnDimension('E')->setWidth(15); // Nama Panggilan
$sheet->getColumnDimension('F')->setWidth(10); // Jenis Kelamin
$sheet->getColumnDimension('G')->setWidth(15); // Tempat Lahir
$sheet->getColumnDimension('H')->setWidth(15); // Tanggal Lahir
$sheet->getColumnDimension('I')->setWidth(15); // Agama
$sheet->getColumnDimension('J')->setWidth(15); // Kewarganegaraan
$sheet->getColumnDimension('K')->setWidth(10); // Anak Ke
$sheet->getColumnDimension('L')->setWidth(10); // Jumlah Saudara Kandung
$sheet->getColumnDimension('M')->setWidth(10); // Jumlah Saudara Tiri
$sheet->getColumnDimension('N')->setWidth(10); // Jumlah Saudara Angkat
$sheet->getColumnDimension('O')->setWidth(15); // Status Anak
$sheet->getColumnDimension('P')->setWidth(15); // Bahasa Sehari-hari
$sheet->getColumnDimension('Q')->setWidth(30); // Alamat
$sheet->getColumnDimension('R')->setWidth(15); // No HP
$sheet->getColumnDimension('S')->setWidth(20); // Tinggal Dengan
$sheet->getColumnDimension('T')->setWidth(15); // Jarak ke Sekolah
$sheet->getColumnDimension('U')->setWidth(10); // Golongan Darah
$sheet->getColumnDimension('V')->setWidth(20); // Riwayat Penyakit
$sheet->getColumnDimension('W')->setWidth(20); // Kelainan Jasmani
$sheet->getColumnDimension('X')->setWidth(10); // Tinggi Badan
$sheet->getColumnDimension('Y')->setWidth(10); // Berat Badan
$sheet->getColumnDimension('Z')->setWidth(15); // Tanggal Diterima

// Set header style
$headerStyle = [
    'font' => ['bold' => true],
    'fill' => [
        'fillType' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID,
        'startColor' => ['argb' => 'FFE0E0E0']
    ]
];
$sheet->getStyle('A1:Z1')->applyFromArray($headerStyle);

// Create example data dengan nomor urut
$exampleData = [
    [1, '1234567890', '2023001', 'Ahmad Sutisna', 'Ahmad', 'L', 
     'Jakarta', '2005-05-15', 'Islam', 'Indonesia', 2,
     3, 0, 0, 'Kandung', 'Indonesia', 'Jl. Merdeka No. 123', '08123456789',
     'Orang Tua', '5 km', 'A', '-', '-', 165, 55, date('Y-m-d')]
];

$sheet->fromArray($exampleData, NULL, 'A2');

// Tambahkan formula untuk nomor urut otomatis
$sheet->setCellValue('A2', 1);
$sheet->setCellValue('A3', 2);
$sheet->getStyle('A3')->getFont()->setItalic(true);
$sheet->setCellValue('A4', '...');

// Set filename and content type
$filename = 'template_import_siswa.xlsx';

header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="' . $filename . '"');
header('Cache-Control: max-age=0');

// Create writer and output
$writer = new Xlsx($spreadsheet);
$writer->save('php://output');
exit;