我使用了之前的问题,现在遇到了性能问题。 导出数据将包含大约15,000行,并耗时10分钟以上。
PHPExcel: Set Column Names fromArray using PHP array
if (PHP_SAPI == 'cli')
die('This should only be run from a Web Browser');
require_once dirname(__FILE__) . '/Excel_Classes/PHPExcel.php';
$user = $_POST['user'];
$title = "Manager Report-" . $_POST['page'] . ".xlsx";
$objPHPExcel = new PHPExcel();
$k = json_decode($_POST['arg1'], TRUE);
$objPHPExcel->getProperties()->setCreator("Manager Report")
->setLastModifiedBy($user)
->setTitle("Report from Manager Report")
->setDescription("Report from Manager Report")
->setKeywords("Manager Report")
->setCategory("Manager Report");
$objPHPExcel->getActiveSheet()->setTitle($_POST['page'])
->fromArray(array_keys($k[0]), NULL, 'A1')
->fromArray($k, NULL, 'A2');
function cellColor($cells, $color) {
global $objPHPExcel;
$objPHPExcel->getActiveSheet()->getStyle('A1:' .
$objPHPExcel->getActiveSheet()->getHighestColumn() . "1"
)->applyFromArray(array(
'font' => array(
'bold' => true,
),
'borders' => array(
'allborders' => array(
'style' => PHPExcel_Style_Border::BORDER_THIN
)
),
'fill' => array(
'type' => PHPExcel_Style_Fill::FILL_SOLID,
'startcolor' => array(
'rgb' => $color
)
),
));
$objPHPExcel->getActiveSheet()->getStyle('A2:' .
$objPHPExcel->getActiveSheet()->getHighestColumn()
->getHighestRow()
)->applyFromArray(array(
'borders' => array(
'allborders' => array(
'style' => PHPExcel_Style_Border::BORDER_THIN
)
)
));
}
cellColor('A1:G1', 'FFFF99');
for ($i = 'A'; $i != $objPHPExcel->getActiveSheet()->getHighestColumn(); $i++) {
$objPHPExcel->getActiveSheet()->getColumnDimension($i)->setAutoSize(TRUE);
}
$objPHPExcel->getActiveSheet()->freezePane('A2')
->setShowGridlines(false)
->setAutoFilter('A1:' . $objPHPExcel->getActiveSheet()->getHighestColumn() . "1");
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="' . $title . '"');
header('Cache-Control: max-age=0');
header('Cache-Control: max-age=1');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' IST');
header('Cache-Control: cache, must-revalidate');
header('Pragma: public');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');
exit;
建议提高性能。