0
我正在通過phpexcel將一些數據寫入Excel表單。生成的文件包含500行和大約35列。運行腳本需要兩分鐘的時間,有什麼方法可以優化它嗎?謝謝phpexcel腳本花費太長時間
下面是我的腳本
require_once 'lib_phpexcel/PHPExcel.php';
ini_set('memory_limit', "512M");
ini_set('max_execution_time', 800);
$objPHPExcel = new PHPExcel();
// proprietes documents
$objPHPExcel->getProperties()->setCreator(utf8_encode("COCPIT"))
->setTitle(utf8_encode("COCPIT - Cohérence"))
->setSubject(utf8_encode("COCPIT - Cohérence"))
->setDescription(utf8_encode("COCPIT - Cohérence"));
$objPHPExcel->setActiveSheetIndex(0);
$sheet = $objPHPExcel->getActiveSheet();
$index_ligne = 4;
$res = mysql_query("SELECT * FROM $database.TEMP_CatalogueSI_RPS LIMIT 2, 999999999999") or die (mysql_error());
while($row = mysql_fetch_row($res)){
$index_colonne = 0;
foreach($row as $value){
$range_colonne = getColonne(++$index_colonne);
$id_cell = $range_colonne . $index_ligne;
$sheet->setCellValue($id_cell, utf8_encode($value));
$sheet->getStyle($id_cell)->applyFromArray($styleCelluleColonneInfos);
// Pour les 8 premières colonnes => on est sur des colonnes 'fixes'
if($index_colonne > 8){
if(strcasecmp($value, "X") === 0){
$sheet->getStyle($id_cell)->getFill()->getStartColor()->setRGB('CCFFCC');
}
else{
$sheet->getStyle($id_cell)->getFill()->getStartColor()->setRGB('C0C0C0');
}
}
}
$index_ligne++;
}
$file = "db/$database/TEMP_CatalogueSI_RPS.xls";
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save($file);
您可以請執行步驟#1的幫助嗎?代碼是什麼樣的? – user2613707
事情是,每個細胞可以有不同的風格。 – user2613707
你的代碼顯示每個單元格在調用'$ sheet-> getStyle($ id_cell) - > applyFromArray($ styleCelluleColonneInfos);'然後一些單元格被賦予不同的背景顏色'if(strcasecmp( $ value,「X」)=== 0){'。你可以省去17500次對'$ sheet-> getStyle($ id_cell) - > applyFromArray($ styleCelluleColonneInfos);'的調用,並在整個範圍內調用它一次,然後將條件樣式應用於大於8的列。該條件也可以應用於一系列單元格,將其稱爲循環之外而不是內部 –