public
function
actionExport()
{
$objectPHPExcel
=
new
PHPExcel();
$objectPHPExcel
->setActiveSheetIndex(0);
$page_size
= 52;
$model
=
new
NewsSearch();
$dataProvider
=
$model
->search();
$dataProvider
->setPagination(false);
$data
=
$dataProvider
->getData();
$count
=
$dataProvider
->getTotalItemCount();
$page_count
= (int)(
$count
/
$page_size
) +1;
$current_page
= 0;
$n
= 0;
foreach
(
$data
as
$product
)
{
if
(
$n
%
$page_size
=== 0 )
{
$current_page
=
$current_page
+1;
$objectPHPExcel
->getActiveSheet()->mergeCells(
'B1:G1'
);
$objectPHPExcel
->getActiveSheet()->setCellValue(
'B1'
,
'产品信息表'
);
$objectPHPExcel
->setActiveSheetIndex(0)->setCellValue(
'B2'
,
'产品信息表'
);
$objectPHPExcel
->setActiveSheetIndex(0)->setCellValue(
'B2'
,
'产品信息表'
);
$objectPHPExcel
->setActiveSheetIndex(0)->getStyle(
'B1'
)->getFont()->setSize(24);
$objectPHPExcel
->setActiveSheetIndex(0)->getStyle(
'B1'
)
->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objectPHPExcel
->setActiveSheetIndex(0)->setCellValue(
'B2'
,
'日期:'
.
date
(
"Y年m月j日"
));
$objectPHPExcel
->setActiveSheetIndex(0)->setCellValue(
'G2'
,
'第'
.
$current_page
.
'/'
.
$page_count
.
'页'
);
$objectPHPExcel
->setActiveSheetIndex(0)->getStyle(
'G2'
)
->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
$objectPHPExcel
->getActiveSheet()->getColumnDimension(
'A'
)->setWidth(5);
$objectPHPExcel
->setActiveSheetIndex(0)->setCellValue(
'B3'
,
'编号'
);
$objectPHPExcel
->getActiveSheet()->getColumnDimension(
'B'
)->setWidth(6.5);
$objectPHPExcel
->setActiveSheetIndex(0)->setCellValue(
'C3'
,
'名称'
);
$objectPHPExcel
->getActiveSheet()->getColumnDimension(
'C'
)->setWidth(17);
$objectPHPExcel
->setActiveSheetIndex(0)->setCellValue(
'D3'
,
'生产厂家'
);
$objectPHPExcel
->getActiveSheet()->getColumnDimension(
'D'
)->setWidth(22);
$objectPHPExcel
->setActiveSheetIndex(0)->setCellValue(
'E3'
,
'单位'
);
$objectPHPExcel
->getActiveSheet()->getColumnDimension(
'E'
)->setWidth(15);
$objectPHPExcel
->setActiveSheetIndex(0)->setCellValue(
'F3'
,
'单价'
);
$objectPHPExcel
->getActiveSheet()->getColumnDimension(
'F'
)->setWidth(15);
$objectPHPExcel
->setActiveSheetIndex(0)->setCellValue(
'G3'
,
'在库数'
);
$objectPHPExcel
->getActiveSheet()->getColumnDimension(
'G'
)->setWidth(15);
$objectPHPExcel
->getActiveSheet()->getStyle(
'B3:G3'
)
->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objectPHPExcel
->getActiveSheet()->getStyle(
'B3:G3'
)
->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objectPHPExcel
->getActiveSheet()->getStyle(
'B3:G3'
)
->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objectPHPExcel
->getActiveSheet()->getStyle(
'B3:G3'
)
->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objectPHPExcel
->getActiveSheet()->getStyle(
'B3:G3'
)
->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objectPHPExcel
->getActiveSheet()->getStyle(
'B3:G3'
)
->getBorders()->getVertical()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objectPHPExcel
->getActiveSheet()->getStyle(
'B3:G3'
)->getFill()
->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setARGB(
'FF66CCCC'
);
}
$objectPHPExcel
->getActiveSheet()->setCellValue(
'B'
.(
$n
+4) ,
$product
->id);
$objectPHPExcel
->getActiveSheet()->setCellValue(
'C'
.(
$n
+4) ,
$product
->product_name);
$objectPHPExcel
->getActiveSheet()->setCellValue(
'D'
.(
$n
+4) ,
$product
->product_agent->name);
$objectPHPExcel
->getActiveSheet()->setCellValue(
'E'
.(
$n
+4) ,
$product
->unit);
$objectPHPExcel
->getActiveSheet()->setCellValue(
'F'
.(
$n
+4) ,
$product
->unit_price);
$objectPHPExcel
->getActiveSheet()->setCellValue(
'G'
.(
$n
+4) ,
$product
->library_count);
$currentRowNum
=
$n
+4;
$objectPHPExcel
->getActiveSheet()->getStyle(
'B'
.(
$n
+4).
':G'
.
$currentRowNum
)
->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objectPHPExcel
->getActiveSheet()->getStyle(
'B'
.(
$n
+4).
':G'
.
$currentRowNum
)
->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objectPHPExcel
->getActiveSheet()->getStyle(
'B'
.(
$n
+4).
':G'
.
$currentRowNum
)
->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objectPHPExcel
->getActiveSheet()->getStyle(
'B'
.(
$n
+4).
':G'
.
$currentRowNum
)
->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objectPHPExcel
->getActiveSheet()->getStyle(
'B'
.(
$n
+4).
':G'
.
$currentRowNum
)
->getBorders()->getVertical()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$n
=
$n
+1;
}
$objectPHPExcel
->getActiveSheet()->getPageSetup()->setHorizontalCentered(true);
$objectPHPExcel
->getActiveSheet()->getPageSetup()->setVerticalCentered(false);
ob_end_clean();
ob_start();
header(
'Content-Type : application/vnd.ms-excel'
);
header(
'Content-Disposition:attachment;filename="'
.
'产品信息表-'
.
date
("Y年m月j日
").'.xls"
');
$objWriter
= PHPExcel_IOFactory::createWriter(
$objectPHPExcel
,
'Excel5'
);
$objWriter
->save(
'php://output'
);