ob_start();
$spreadsheet = new Spreadsheet();
$spreadsheet->getActiveSheet()->getColumnDimension('A')->setWidth(10);
$spreadsheet->getActiveSheet()->getColumnDimension('B')->setWidth(20);
$spreadsheet->getActiveSheet()->getColumnDimension('C')->setWidth(30);
$spreadsheet->getActiveSheet()->getColumnDimension('D')->setWidth(40);
$spreadsheet->getActiveSheet()->getColumnDimension('E')->setWidth(20);
$spreadsheet->getActiveSheet()->getColumnDimension('F')->setWidth(20);
$spreadsheet->getActiveSheet()->getColumnDimension('G')->setWidth(20);
$spreadsheet->getActiveSheet()->getColumnDimension('H')->setWidth(20);
$spreadsheet->getActiveSheet()->getColumnDimension('I')->setWidth(20);
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'SL No.');
$sheet->setCellValue('B1', 'Student Name');
$sheet->setCellValue('C1', 'Admission Roll');
$sheet->setCellValue('D1', 'Transaction No.');
$sheet->setCellValue('E1', 'API Payment Date');
$sheet->setCellValue('F1', 'Only Fee');
$sheet->setCellValue('G1', 'Bank Charge');
$sheet->setCellValue('H1', 'Additional Charge');
$sheet->setCellValue('I1', 'Customer Paid Amount');
$sn = 2;
$pattern = '/^\d{1,2}\/\d{1,2}\/\d{2}, \d{1,2}:\d{2} [APap][Mm]$/';
foreach ($transactionHistories as $index => $transactionHistory) {
$apiPaymentDate = $transactionHistory->api_payment_date;
if (preg_match($pattern, $transactionHistory->api_payment_date)) {
$data = Time::createFromFormat('n/j/y, h:i A', $transactionHistory->api_payment_date);
$apiPaymentDate = $data->format('Y-m-d H:i:s');
}
$sheet->setCellValueExplicit('A' . $sn, ($index + 1), DataType::TYPE_STRING);
$sheet->setCellValueExplicit('B' . $sn, $transactionHistory->full_name_en, DataType::TYPE_STRING);
$sheet->setCellValueExplicit('C' . $sn, $transactionHistory->admission_roll, DataType::TYPE_STRING);
$sheet->setCellValueExplicit('D' . $sn, $transactionHistory->transaction_no, DataType::TYPE_STRING);
$sheet->setCellValueExplicit('E' . $sn, $apiPaymentDate, DataType::TYPE_STRING);
$sheet->setCellValueExplicit('F' . $sn, $transactionHistory->only_fee, DataType::TYPE_STRING);
$sheet->setCellValueExplicit('G' . $sn, $transactionHistory->bank_charge, DataType::TYPE_STRING);
$sheet->setCellValueExplicit('H' . $sn, $transactionHistory->additional_charge, DataType::TYPE_STRING);
$sheet->setCellValueExplicit('I' . $sn, $transactionHistory->customer_paid_amount, DataType::TYPE_STRING);
$sn++;
}
$fileName = 'ekpay Transaction History report'. date('d-m-Y') . '.xlsx';
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header("Content-Disposition: attachment;filename=$fileName");
header('Cache-Control: max-age=0');
header('Cache-Control: max-age=1');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: cache, must-revalidate');
header('Pragma: public');
$writer = new Xlsx($spreadsheet);
return $writer->save('php://output');
ob_end_flush();