<?php
error_reporting(E_ALL);
ini_set('display_errors', FALSE);
ini_set('display_startup_errors', FALSE);
if (PHP_SAPI == 'cli')
die('This example should only be run from a Web Browser');
require_once WEB_ROOT.'/includes/lib/phpexcel/PHPExcel.php';
// Create new PHPExcel object
$objPHPExcel = new PHPExcel();
// Set document properties
$objPHPExcel->getProperties()->setCreator("baijiacms")
->setLastModifiedBy("baijiacms")
->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("report file");
if($report=='orderreport')
{
// Add some data
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A1', '订单号')
->setCellValue('B1', '下单时间')
->setCellValue('C1', '订单总额')
->setCellValue('D1', '运费')
->setCellValue('E1', '付款方式')
->setCellValue('F1', '配送方式')
->setCellValue('G1', '收货人')
->setCellValue('H1', '收货地址')
->setCellValue('I1', '收货电话')
->setCellValue('J1', '')
->setCellValue('K1', '分类名称')
->setCellValue('L1', '产品名称')
->setCellValue('M1', '规格')
->setCellValue('N1', '商品单价')
->setCellValue('O1', '购买数量')
->setCellValue('P1', '商品总价');
$i=2;
$index=0;
$countmoney=0;
foreach($list as $item){
$countmoney=$countmoney+$item['price'];
$priceother='';
$index++;
if(!empty($item['dispatchprice'])&&$item['dispatchprice']>0)
{
$priceother=$item['dispatchprice'];
}else
{
$priceother="0";
}
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A'.$i, $item['ordersn'])
->setCellValue('B'.$i, date('Y-m-d H:i:s',$item['createtime']))
->setCellValue('C'.$i, $item['price'])
->setCellValue('D'.$i, $priceother)
->setCellValue('E'.$i, $item['paytypename'])
->setCellValue('F'.$i,$dispatchdata[$item['dispatch']]['dispatchname'])
->setCellValue('G'.$i, $item['address_realname'])
->setCellValue('H'.$i, $item['address_province'].$item['address_city'].$item['address_area'].$item['address_address'])
->setCellValue('I'.$i, $item['address_mobile']);
$itemdatas=array();
$itemdline=0;
foreach($item['ordergoods'] as $itemgoods){
if($itemdline==0)
{
$itemdatas['categoryname']='';
$itemdatas['title']='';
$itemdatas['optionname']='';
$itemdatas['price']='';
$itemdatas['total']='';
$itemdatas['goodstotal']='';
$sline='';
}else
{
$sline="\n";
}
$itemdatas['categoryname']=$itemdatas['categoryname'].$sline.$itemgoods['categoryname'];
$itemdatas['title']=$itemdatas['title'].$sline.$itemgoods['title'];
$itemdatas['optionname']=$itemdatas['optionname'].$sline.$itemgoods['optionname'];
$itemdatas['price']=$itemdatas['price'].$sline.$itemgoods['price'];
$itemdatas['total']=$itemdatas['total'].$sline.$itemgoods['total'];
$itemdatas['goodstotal']=$itemdatas['goodstotal'].$sline.round(($itemgoods['total']*$itemgoods['price']),2);
$itemdline=$itemdline+1;
}
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('J'.$i, '')
->setCellValue('K'.$i, $itemdatas['categoryname'])
->setCellValue('L'.$i, $itemdatas['title'])
->setCellValue('M'.$i, $itemdatas['optionname'])
->setCellValue('N'.$i, $itemdatas['price'])
->setCellValue('O'.$i, $itemdatas['total'])
->setCellValue('P'.$i,$itemdatas['goodstotal']);
// $objPHPExcel->getActiveSheet()->getStyle('A'.$i.':P'.$i)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
//$objPHPExcel->getActiveSheet()->getStyle( 'J'.$i.':P'.$i)->getAlignment()->setWrapText(true);
//$objBorderA5 = $objPHPExcel->getActiveSheet()->getStyle('A'.$i.':Q'.$i)->getBorders();
//$objBorderA5->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
//$objBorderA5->getTop()->getColor()->setARGB('FFFF0000');
//$objBorderA5->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
//$objBorderA5->getBottom()->getColor()->setARGB('FFFF0000');
// $objPHPExcel->getActiveSheet()->getStyle('A'.$i.':P'.$i)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
$i++;
}
$objPHPExcel->getActiveSheet()->getStyle('A1:P1')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(15);
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(10);
$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(10);
$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(15);
$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(18);
$objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(15);
$objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(50);
$objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(15);
$objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth(5);
$objPHPExcel->getActiveSheet()->getColumnDimension('K')->setWidth(25);
$objPHPExcel->getActiveSheet()->getColumnDimension('L')->setWidth(65);
$objPHPExcel->getActiveSheet()->getColumnDimension('M')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('N')->setWidth(10);
$objPHPExcel->getActiveSheet()->getColumnDimension('O')->setWidth(10);
$objPHPExcel->getActiveSheet()->getColumnDimension('P')->setWidth(10);
$objPHPExcel->getActiveSheet()->setTitle('订单统计');
}
// 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="report_'.time().'.xlsx"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');
exit;原创文章,转载请标明出处!