JezK
Edit File: viewB-DC-MonthlyReport-Excel.php
<?php /** * PHPExcel * * Copyright (c) 2006 - 2015 PHPExcel * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * @category PHPExcel * @package PHPExcel * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ /** Error reporting */ //error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); include("app/getBDCReportDetails.php"); //$membershipData=$tagcaObject->selectExelData(); if (PHP_SAPI == 'cli') die('This example should only be run from a Web Browser'); /** Include PHPExcel */ require_once dirname(__FILE__) . '/PHPExcel-1.8/Classes/PHPExcel.php'; // Create new PHPExcel object $objPHPExcel = new PHPExcel(); // Set document properties $objPHPExcel->getProperties()->setCreator("Maarten Balliauw") ->setLastModifiedBy("Maarten Balliauw") ->setTitle("Office 2007 XLSX Test Document") ->setSubject("Office 2007 XLSX Test Document") ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") ->setKeywords("office 2007 openxml php") ->setCategory("Test result file"); $objPHPExcel->getActiveSheet()->setTitle('B-DC Report'); //$objPHPExcel->getActiveSheet()->getStyle()->getAlignment()->setIndent(10); //$objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::VERTICAL_BOTTOM); //$objPHPExcel->getActiveSheet()->getRowDimension()->setRowHeight(40); //$objPHPExcel->getActiveSheet()->getColumnDimension()->setWidth(100); // Add some data $heading_array=array('B&DC Code','B&DC Name'); // setting the heading $columncounter='0'; foreach($heading_array as $heading) { $objPHPExcel->setActiveSheetIndex(0)->setCellValueByColumnAndRow($columncounter,'2' ,$heading); $columncounter++; } $rowcounter=7; $columncounter='0'; $heading_array=array('S.No','Staff Name','Status'); // setting the heading foreach($heading_array as $heading) { $objPHPExcel->setActiveSheetIndex(0)->setCellValueByColumnAndRow($columncounter,'7' ,$heading); $columncounter++; } //To apply auto size to all fields from B to Z foreach(range('B','D') as $columnID) { $objPHPExcel->getActiveSheet()->getColumnDimension($columnID) ->setAutoSize(true); } //To set alignments $style = array( 'alignment' => array( 'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_LEFT, 'vertical' => PHPExcel_Style_Alignment::VERTICAL_CENTER, ) ); $objPHPExcel->getDefaultStyle()->applyFromArray($style); //To set First row bold $styleArray = array( 'font' => array( 'bold' => true, 'color' => array('rgb' => '#000'), 'size' => 11 )); $objPHPExcel->getActiveSheet()->getStyle(1)->applyFromArray($styleArray); $objPHPExcel->getActiveSheet()->getStyle('A1:P1')->getFont()->setBold( true ); $objPHPExcel->setActiveSheetIndex(0)->setCellValueByColumnAndRow(3,1,"Monthly Report for ".$reportMonth); $objPHPExcel->setActiveSheetIndex(0)->setCellValueByColumnAndRow(3,5,"Details"); $objPHPExcel->getActiveSheet()->getStyle('A5:P5')->getFont()->setBold( true ); $objPHPExcel->getActiveSheet()->getStyle('A2:P2')->getFont()->setBold( true ); $objPHPExcel->getActiveSheet()->getStyle('A7:P7')->getFont()->setBold( true ); // writing data $rowcounter=3; $columncounter='0'; $objPHPExcel->setActiveSheetIndex(0)->setCellValueByColumnAndRow($columncounter++,$rowcounter ,$code); $objPHPExcel->setActiveSheetIndex(0)->setCellValueByColumnAndRow($columncounter++,$rowcounter ,$name); $details = $bdc->getBDCReportDetails($bdcUserID,$month,$year); $j = 1; $rowcounter=8; for($i=0;$i<count($details);$i++) { $columncounter='0'; $staffID = $details[$i]['staffID']; $staffDetails = $bdc->getStaffDetails($staffID); $staffName = $staffDetails['staffName']; $staffStatus = ($details[$i]['status'] == 0)?"Left":"Working"; $objPHPExcel->setActiveSheetIndex(0)->setCellValueByColumnAndRow($columncounter++,$rowcounter ,$j++); $objPHPExcel->setActiveSheetIndex(0)->setCellValueByColumnAndRow($columncounter++,$rowcounter ,$staffName); $objPHPExcel->setActiveSheetIndex(0)->setCellValueByColumnAndRow($columncounter++,$rowcounter ,$staffStatus); $rowcounter++; } // 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 (Excel5) header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="B-DC-List.xls"'); 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, 'Excel5'); $objWriter->save('php://output'); exit; ?>