簡體   English   中英

重構使用公式輸出csv的PHP代碼

[英]Refactoring PHP code that outputs csv with formulas

我有一些PHP代碼,這些代碼旨在制作一個包含公式的電子表格來匯總一些列。 似乎應該有比下面的代碼更優雅的方法。 有哪些重構或設計模式可以更好地完成下面的代碼?

<?
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);
?>

使用PEAR :: Spreadsheet_Excel_Writer ,它將實際上對您實施一些良好的設計原則。 另外,它將清理並規范化所有輸入。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM