Export excel multiple sheet dễ dàng với PHPExcel

Lượt xem: 1063

Ở bài trước dandev đã cùng các bạn nhúng thư viện PHPExcel vào project của chúng ta và đã thử export file excel thành cồng. Ở bài này dandev cùng các bạn tìm hiểu cách export excel multiple sheet trong phpexcel nhé

Đây là phần code trong video dandev chia sẻ. Các bạn kết hợp cả video và bài viết để hoàn thiện project của mình nhé

 


if(isset($_GET['excel'])) {
$result = mysqli_query($conn,"SELECT * FROM Customers". $where);
  // Create new PHPExcel object
$objPHPExcel = new PHPExcel();

$objPHPExcelClone = clone $objPHPExcel->getActiveSheet();
// Add some data
$objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A1', 'Tên khách hàng')
            ->setCellValue('B1','Điện thoại')
            ->setCellValue('C1', 'Địa chỉ')
            ->setCellValue('D1', 'Email');

// Add some data
$objPHPExcelClone
            ->setCellValue('A1', 'Tên khách hàng2')
            ->setCellValue('B1','Điện thoại2')
            ->setCellValue('C1', 'Địa chỉ2')
            ->setCellValue('D1', 'Email2');
 $key = 0;
 $key2 = 0;
 while($customer = mysqli_fetch_assoc($result)) {

// Add some data
$objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A'.($key+2), $customer['CustomerName'])
            ->setCellValue('B'.($key+2), $customer['Phone'])
            ->setCellValue('C'.($key+2), $customer['Address'])
            ->setCellValue('D'.($key+2), $customer['email']);
            $key ++;
  if(strcmp($customer['role'], 'admin') == 0 ) {
    $objPHPExcelClone
      ->setCellValue('A'.($key2+2), $customer['CustomerName'])
      ->setCellValue('B'.($key2+2), $customer['Phone'])
      ->setCellValue('C'.($key2+2), $customer['Address'])
      ->setCellValue('D'.($key2+2), $customer['email']);
      $key2 ++;
  }
 }
// Rename worksheet
$objPHPExcel->getActiveSheet()->setTitle('Customer');
$objPHPExcelClone->setTitle('Admin');
$objPHPExcel->addSheet($objPHPExcelClone);

$objPHPExcelClone2 = clone $objPHPExcel->getActiveSheet();
$objPHPExcelClone2->setTitle('Other');
$objPHPExcel->addSheet($objPHPExcelClone2);

// Set active sheet index to the first sheet, so Excel opens this as the first sheet
$objPHPExcel->setActiveSheetIndex(0);




// Redirect output to a client’s web browser (Excel2007)
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="customer.xlsx"');
header('Cache-Control: max-age=0');
// If you're serving to IE 9, then the following may be needed
header('Cache-Control: max-age=1');

// If you're serving to IE over SSL, then the following may be needed
header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified
header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
header ('Pragma: public'); // HTTP/1.0

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');
exit;
}

Video