public function downloadExcel()
 {
     $this->autoRender = false;
     $this->layout = '';
     $data['Linnworksapi']['order_type'] = $this->request->data['Linnworksapis']['order_type'];
     $data['Linnworksapi']['location'] = $this->request->data['Linnworksapis']['location'];
     $data['Linnworksapi']['source'] = $this->request->data['Linnworksapis']['source'];
     $data['Linnworksapi']['subsource'] = $this->request->data['Linnworksapis']['subsource'];
     $data['Linnworksapi']['datefrom'] = $this->request->data['Linnworksapis']['datefrom'];
     $data['Linnworksapi']['dateto'] = $this->request->data['Linnworksapis']['dateto'];
     $data['Linnworksapi']['orderid'] = $this->request->data['Linnworksapis']['orderid'];
     App::import('Helper', 'Soap');
     $SoapHelper = new SoapHelper(new View(null));
     $getData = $SoapHelper->getFilteredOrder($data);
     App::import('Helper', 'Number');
     $numberHelper = new NumberHelper(new View(null));
     App::import('Vendor', 'PHPExcel/IOFactory');
     App::import('Vendor', 'PHPExcel');
     $objPHPExcel = new PHPExcel();
     $objPHPExcel->setActiveSheetIndex(0);
     $objPHPExcel->getActiveSheet()->setCellValue('A1', 'OrderItemNumber');
     $objPHPExcel->getActiveSheet()->setCellValue('B1', 'Name');
     $objPHPExcel->getActiveSheet()->setCellValue('C1', 'Address');
     $objPHPExcel->getActiveSheet()->setCellValue('D1', 'Postcode');
     $objPHPExcel->getActiveSheet()->setCellValue('E1', 'Country');
     $objPHPExcel->getActiveSheet()->setCellValue('F1', 'Item Count');
     $objPHPExcel->getActiveSheet()->setCellValue('G1', 'Contents');
     $objPHPExcel->getActiveSheet()->setCellValue('H1', 'Total Packet Value');
     $objPHPExcel->getActiveSheet()->setCellValue('I1', 'Weight');
     $objPHPExcel->getActiveSheet()->setCellValue('J1', 'HS');
     $objPHPExcel->getActiveSheet()->setCellValue('K1', 'Deposit');
     $objPHPExcel->getActiveSheet()->setCellValue('L1', 'Invoice Number');
     $objPHPExcel->getActiveSheet()->setCellValue('M1', 'Bag barcode');
     $i = 2;
     foreach ($getData->GetFilteredOrdersResponse->GetFilteredOrdersResult->Orders->Order as $order) {
         $contents = array();
         $orderItems = array();
         foreach ($order->OrderItems->OrderItem as $item) {
             $contents[] = $item->Qty . ' X ' . $item->ItemTitle;
             $orderItems[] = $item->OrderItemNumber;
         }
         $content = implode(" \n", $contents);
         $orderItem = implode(" \n", $orderItems);
         $itemCount = count($order->OrderItems->OrderItem);
         $address = $order->ShippingAddress->Address1 . ',' . $order->ShippingAddress->Address2 . ',' . $order->ShippingAddress->Address3;
         $address = explode(',', $address);
         $address = implode(" \n ", $address);
         $objPHPExcel->getActiveSheet()->setCellValue('A' . $i . '', $orderItem);
         $objPHPExcel->getActiveSheet()->setCellValue('B' . $i . '', $order->ShippingAddress->Name);
         $objPHPExcel->getActiveSheet()->setCellValue('C' . $i . '', $address);
         $objPHPExcel->getActiveSheet()->setCellValue('D' . $i . '', $order->ShippingAddress->PostCode);
         $objPHPExcel->getActiveSheet()->setCellValue('E' . $i . '', $order->ShippingAddress->CountryCode);
         $objPHPExcel->getActiveSheet()->setCellValue('F' . $i . '', $itemCount);
         $totlaCost = $numberHelper->currency($order->TotalCost, 'EUR');
         $objPHPExcel->getActiveSheet()->setCellValue('G' . $i . '', $content);
         $objPHPExcel->getActiveSheet()->setCellValue('H' . $i . '', $totlaCost);
         $objPHPExcel->getActiveSheet()->setCellValue('I' . $i . '', '5');
         $objPHPExcel->getActiveSheet()->setCellValue('J' . $i . '', '5');
         $objPHPExcel->getActiveSheet()->setCellValue('K' . $i . '', '5');
         $objPHPExcel->getActiveSheet()->setCellValue('L' . $i . '', '5');
         $objPHPExcel->getActiveSheet()->setCellValue('M' . $i . '', '5');
         $i++;
     }
     if ($this->request->data['Linnworksapis']['order_type'] == 0) {
         $objPHPExcel->getActiveSheet()->setTitle('Open Order');
         $objPHPExcel->createSheet();
         $name = 'Open Order';
     }
     if ($this->request->data['Linnworksapis']['order_type'] == 1) {
         $objPHPExcel->getActiveSheet()->setTitle('Processed Order');
         $objPHPExcel->createSheet();
         $name = 'Procesed Order';
     }
     if ($this->request->data['Linnworksapis']['order_type'] == 2) {
         $objPHPExcel->getActiveSheet()->setTitle('Cancelled Order');
         $objPHPExcel->createSheet();
         $name = 'Cancelled Order';
     }
     header('Content-Encoding: UTF-8');
     header('Content-type: text/csv; charset=UTF-8');
     header('Content-Disposition: attachment;filename="' . $name . '.csv"');
     header('Cache-Control: max-age=0');
     $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'CSV');
     $objWriter->save('php://output');
 }