PHP
1// データ 2$sum =0; 3for($i=0;$i<10000;$i++){ 4 $sum+=100; 5 $data[$i]['A']['cellValue'] = "A".sprintf("%08d",$i); 6 $data[$i]['B']['cellValue'] = "B".sprintf("%08d",$i); 7 $data[$i]['C']['cellValue'] = "C".sprintf("%08d",$i); 8 $data[$i]['D']['cellValue'] = "D".sprintf("%08d",$i); 9 $data[$i]['E']['cellValue'] = "E".sprintf("%08d",$i); 10 $data[$i]['F']['cellValue'] = "230"; 11 $data[$i]['F']['backColor'] = "FFFFCC"; 12 $data[$i]['G']['cellValue'] = "G".sprintf("%08d",$i); 13 $data[$i]['H']['cellValue'] = "H".sprintf("%08d",$i); 14} 15// 行繰り返し 16$i=1; 17foreach($data as $key => $value){ 18 19 // ヘッダ飛ばす(行は1から開始) 20 $i++; 21 22 // 列繰り返し 23 $j = 0; 24$startTime = microtime(true); 25 foreach($value as $key1 => $value1){ 26 27 // セルにデータをセット 28 if(isset($value1['cellValue'])){ 29 $sheet->setCellValueByColumnAndRow($j,$i , $value1['cellValue']); 30 } 31 32 // セルに背景色をセット 33 if(isset($value1['backColor'])){ 34 $sheet->getStyleByColumnAndRow($j,$i)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID); 35 $sheet->getStyleByColumnAndRow($j,$i)->getFill()->getStartColor()->seRGB($value1['backColor']); 36 } 37 38 // セルに罫線(上)をセット 39 if(isset($value1['topLine'])){ 40 $sheet->getStyleByColumnAndRow($j,$i)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_MEDIUM); 41 } 42 $j++; 43 } 44$endTime = microtime(true); 45$spendTime = $endTime - $startTime; 46echo "spend:{$spendTime}<br>\n"; 47$sumTime += $spendTime; 48} 49echo "endtime:{$sumTime}";
PHPExcelを使用して10000件のレコードをエクセルファイルにしようと思って上記の様なコードを書いたのですが5秒ほどかかっていて重いのが現状です。
どうやったら軽くなるか?
と言うのもあるんですが
PHP
1echo "spend:{$spendTime}<br>\n";
の部分で半分以上の割合で0が出力されているのはなぜなんでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/01/28 01:06