2009-05-18 9 views
0

数式を含むスプレッドシートを作成していくつかの列を合計するように設計されたPHPコードがあります。これを行うには、以下のコードよりもはるかにエレガントな方法があるはずです。以下のコードのようなものを実現できるリファクタリングやデザインパターンは何ですか?リファクタリングCsvに数式を出力する

<? 
echo ",Current Milestone,Total Hours,Milestone 1 Hours,Milestone 2 Hours,Milestone 3 Hours\n"; 
$row = 2; 
$totSSRange = ""; 
foreach($departments as $dept){ 
    $deptStartRow = $row + 1; 
    echo $dept['name']."\n"; 
    foreach($dept['modules'] as $module){ 
     $row++; 
     echo $module['name'].','.$module['ms'].',=SUM(D'.$row.':F'.$row.'),'.$module['m1'].','.$module['m2'].','.$module['m3']."\n"; 
    } 
    $deptSSRange = "C".$deptStartRow.":C".$row; 
    $totSSRange .= $deptSSRange.","; 
    $sumStr = "=SUM(".$deptSSRange.")"; 
    echo 'Sum,,'.$sumStr.','.str_replace("C","D",$sumStr).','.str_replace("C","E",$sumStr).','.str_replace("C","F",$sumStr)."\n\n"; 
    $row+=3; 
} 
$totSumStr = "\"=SUM(".$totSSRange.")\""; 
echo 'Total,,'.$totSumStr.','.str_replace("C","D",$totSumStr).','.str_replace("C","E",$totSumStr).','.str_replace("C","F",$totSumStr); 
?> 
+1

なぜこれがダウンリストされましたか? – Craig

+0

答えはあなたがより良くなりたいアスペクトに依存しますか?パフォーマンス?記憶?再利用は? –

+1

誰かがその質問があまり具体的ではないと思ったのでしょうか? –

答えて

関連する問題