public function actionOutExcel(){
//echo Yii::app()->request->baseUrl;
$danju = OrderInfo::model()->findByPk($_GET['id']);
ob_end_clean();
ob_start();
/** PHPExcel */
//Yii::import('application.vendors.*');
include_once(dirname(dirname(__FILE__)).'/extensions/PHPExcel.php');
include_once(dirname(dirname(__FILE__)).'/extensions/PHPExcel/Writer/Excel2007.php');
$objPHPExcel = new PHPExcel();
$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->setActiveSheetIndex(0)
->setCellValue('A1', '商品编码')
->setCellValue('B1', '商品名称')
->setCellValue('C1', '商品规格')
->setCellValue('D1', '盘点库存')
->setCellValue('E1', '账面库存');
$model =$this->loadModel($_GET['id']);
if(!empty($model->Goods)){
$i =2;
foreach ($model->Goods as $one){
$guige = '';
$guige = $one->StockSpliterValue;
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue("A$i", $one->gd_sn)
->setCellValue("B$i", $one->gd_name)
->setCellValue("C$i", "$guige")
->setCellValue("D$i", $one->order_num)
->setCellValue("E$i", $one->stock_num);
$i++;
}
}
$objPHPExcel->getActiveSheet()->setTitle('盘点单');
$objPHPExcel->setActiveSheetIndex(0);
// $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
// $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
$objWriter = new PHPExcel_Writer_Excel5($objPHPExcel);
header("Pragma: public");
header("Expires: 0");
//header('Content-Type: application/vnd.ms-excel;charset=utf8');
header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
header("Content-Type:application/force-download");
header("Content-Type:application/vnd.ms-execl");
header("Content-Type:application/octet-stream");
header("Content-Type:application/download");
$fireName = $danju->order_sn.'-盘点单';
header("Content-Disposition:attachment;filename=$fireName.xls");
header("Content-Transfer-Encoding:binary");
$objWriter->save("php://output");
Yii::app()->end();
spl_autoload_register(array('YiiBase','autoload'));
}
注意:在导出excel的时候,遇到经常乱码的问题,需要加上
- ob_end_clean();
- ob_start();
-