function admin_xls($id = null)
 {
     if (!$id) {
         $this->Session->setFlash(__('Invalid NewsletterSendlist.', true));
         $this->redirect(array('action' => 'index'));
     }
     App::import('Lib', 'Newsletter.Sendlist');
     $Sendlist = new Sendlist($id);
     $newsletterEmails = $Sendlist->findEmail('all');
     $sendlist = $this->NewsletterSendlist->read(null, $id);
     if (!empty($newsletterEmails)) {
         App::import('Vendor', 'Newsletter.PHPExcel', array('file' => 'PHPExcel.php'));
         App::import('Vendor', 'Newsletter.PHPExcel_Writer_Excel2007', array('file' => 'PHPExcel/Writer/Excel2007.php'));
         /////// set document properties ///////
         $objPHPExcel = new PHPExcel();
         $title = $sendlist['NewsletterSendlist']['title'];
         if (strlen($title) > 30) {
             $title = substr($title, 0, 30);
         }
         $objPHPExcel->getProperties()->setTitle($title);
         $objPHPExcel->getProperties()->setSubject($title);
         $objPHPExcel->getProperties()->setDescription(str_replace(array('%title%', '%id%'), array($sendlist['NewsletterSendlist']['title'], $sendlist['NewsletterSendlist']['id']), __('Export of the "%title%" sendlist (ID %id%).', true)));
         $objPHPExcel->setActiveSheetIndex(0);
         $objPHPExcel->getActiveSheet()->setTitle($title);
         /////// set headers ///////
         $i = 0;
         $exclude = array('id', 'data', 'sendlist_id', 'modified');
         foreach ($newsletterEmails[0]['NewsletterEmail'] as $key => $val) {
             if (!in_array($key, $exclude)) {
                 $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($i, 1, Inflector::humanize($key));
                 $objPHPExcel->getActiveSheet()->getStyleByColumnAndRow($i, 1)->getFont()->setBold(true);
                 $objPHPExcel->getActiveSheet()->getColumnDimensionByColumn($i)->setAutoSize(true);
                 $i++;
             }
         }
         /////// write data ///////
         foreach ($newsletterEmails as $row => $mail) {
             $i = 0;
             foreach ($mail['NewsletterEmail'] as $key => $val) {
                 if (!in_array($key, $exclude)) {
                     $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($i, $row + 2, $val);
                     $i++;
                 }
             }
         }
         /////// output ///////
         $this->autoRender = false;
         header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
         header('Content-Disposition: attachment;filename="' . Inflector::slug($sendlist['NewsletterSendlist']['title']) . '.xlsx"');
         header('Cache-Control: max-age=0');
         $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
         $objWriter->save('php://output');
         exit;
     } else {
         $this->Session->setFlash(__('The NewsletterSendlist is empty, nothing to export.', true));
         $this->redirect(array('action' => 'index'));
     }
     //debug( $newsletterEmails);
     //$this->render(false);
 }