/** Error reporting */
error_reporting(E_ALL);
ini_set('include_path', ini_get('include_path') . ';../Classes/');
/** PHPExcel */
include 'PHPExcel.php';
include 'PHPExcel/Writer/Excel2007.php';
$objPHPExcel = new PHPExcel();
// Set properties
$objPHPExcel->getProperties()->setCreator("Business USA");
$objPHPExcel->getProperties()->setLastModifiedBy("Business USA");
$objPHPExcel->getProperties()->setTitle("Business USA - CMS Reports");
$objPHPExcel->getProperties()->setSubject("Business USA - CMS Reports");
$objPHPExcel->getProperties()->setDescription("Business USA CMS Reports.");
// Add some data
$objPHPExcel->setActiveSheetIndex(0);
myExcel_WriteValuesToActiveRow($objPHPExcel, array('this', 'is a', 'test'));
// Save sheet
$objPHPExcel->getActiveSheet()->setTitle('Simple');
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
$objWriter->save('BusinessUSA - CMS Reports.xlsx');
function myExcel_getActiveRow()
{
    global $myExcel_myActiveRow;
    if (!isset($myExcel_myActiveRow)) {
        $myExcel_myActiveRow = 1;
    }
    return $myExcel_myActiveRow;
}
function myExcel_setActiveRow($rowNumber)
{
    global $myExcel_myActiveRow;
 function arrayToExcel($objPHPExcel = null, $rows, $writeArrayKeysAsHeader = false, $rowStartWrite = 1, $setActiveSheetTo = 0, $sheetName = null)
 {
     include_once 'sites/all/libraries/PHPExcel/PHPExcel/Writer/Excel2007.php';
     // Create an object/instance for the output spreadsheet
     if (is_null($objPHPExcel)) {
         $objPHPExcel = new PHPExcel();
     }
     myExcel_setActiveRow($rowStartWrite);
     // Create new sheet is needed
     $sheetOk = true;
     do {
         try {
             $objPHPExcel->setActiveSheetIndex($setActiveSheetTo);
             $sheetOk = true;
         } catch (Exception $e) {
             $sheetOk = false;
             $objPHPExcel->createSheet();
         }
     } while ($sheetOk === false);
     if (is_null($sheetName)) {
         $objPHPExcel->getActiveSheet()->setTitle("Sheet {$setActiveSheetTo}");
     } else {
         $objPHPExcel->getActiveSheet()->setTitle($sheetName);
     }
     // Set basic properties to output spreadsheet
     $objPHPExcel->getProperties()->setCreator("Business USA");
     $objPHPExcel->getProperties()->setLastModifiedBy("Business USA");
     $objPHPExcel->getProperties()->setTitle("Business USA");
     $objPHPExcel->getProperties()->setSubject("Business USA");
     $objPHPExcel->getProperties()->setDescription("Business USA");
     // Debug
     if (strpos(request_uri(), '-DEBUG-NOEXCELWRITE-REPORTWRITE-') !== false) {
         ob_end_clean();
     }
     // Write headders
     if ($writeArrayKeysAsHeader === true) {
         $headders = array();
         foreach ($rows[0] as $key => $cell) {
             $headders[] = $key;
         }
         myExcel_WriteValuesToActiveRow($objPHPExcel, $headders, true);
         // Set the next row as "active" so the next time myExcel_WriteValuesToActiveRow() is called it will write to the next
         myExcel_setActiveRow(myExcel_getActiveRow() + 1);
     }
     // Write rows
     foreach ($rows as $row) {
         // Add a row into the spreadsheet
         myExcel_WriteValuesToActiveRow($objPHPExcel, $row);
         // Set the next row as "active" so the next time myExcel_WriteValuesToActiveRow() is called it will write to the next
         myExcel_setActiveRow(myExcel_getActiveRow() + 1);
     }
     // Debug
     if (strpos(request_uri(), '-DEBUG-NOEXCELWRITE-REPORTWRITE-') !== false) {
         flush();
         exit;
     }
     myExcel_decideColumnWidths($objPHPExcel, $rows);
     return $objPHPExcel;
 }