【问题标题】:How to change one particular column's background color when importing data from a CSV从 CSV 导入数据时如何更改特定列的背景颜色
【发布时间】:2015-01-10 06:08:26
【问题描述】:

我正在使用this 解决方案将 CSV 数据导入 HTML 表。现在该表有 7 列(但行数会不时地从 20 到 60 不等)。我的客户要求我将第 5 列的背景颜色更改为其他颜色,以便某一列从其他列中脱颖而出。我该怎么做?

我的代码:

 <?php
 $f = fopen("so-csv.csv", "r");
 while (($line = fgetcsv($f)) !== false) {
    echo "<tr>";
    foreach ($line as $cell) {
       echo "<td>" . htmlspecialchars($cell) . "</td>";
    }
    echo "</tr>\n";
 }
 fclose($f);
 ?>

更新

感谢 roullieGhost 的快速回复!但是,我忘了提到我的客户希望桌子有 2 种颜色,例如如果所有列都是红色的,那么只有第 5 列是灰色的。所以我有...

foreach ($line as $cell) {
  echo '<td style="background-color: #892525;">' . htmlspecialchars($cell) . '</td>';
}

现在我该如何添加您的解决方案?

【问题讨论】:

    标签: php html html-table import-from-csv


    【解决方案1】:

    只需在 foreach 循环中添加一个键检查:

    foreach ($line as $k => $cell) {
       // index starts at zero
       $color = ($k == 4) ? '#ccc;' : '#892525;';
       $class = "style='background-color: $color'";
       echo "<td $class>" . htmlspecialchars($cell) . "</td>";
    }
    

    【讨论】:

    • 感谢您的回复。请查看我编辑的问题
    • @AlwaysAnovice 你的意思是这样吗?如果列 == 5 -> 灰色,否则 -> 红色?
    • 这太令人困惑了,在我用你的替换 foreach 后,我收到 500 错误:Failed to load resource: the server responded with a status of 500 (Internal Server Error) :( 知道为什么会这样吗?
    • @AlwaysAnovice 更改此行,有错字:$color = ($k == 4) ? '#ccc;' : '#892525;';
    • @AlwaysAnovice 是的,休息吧。很高兴这有帮助
    【解决方案2】:
        <?php
     $five = 5;
     $ctr = 1;
     $f = fopen("so-csv.csv", "r");
     while (($line = fgetcsv($f)) !== false) {
        echo "<tr>";
        foreach ($line as $cell) {
           echo "<td ".($ctr==$five?"style='background:red":"").">" . htmlspecialchars($cell) . "</td>";
        }
        echo "</tr>\n";
        $ctr++;
     }
     fclose($f);
     ?>
    

    【讨论】:

    • 感谢您的回复。请查看我编辑的问题
    猜你喜欢
    • 2014-12-12
    • 1970-01-01
    • 1970-01-01
    • 2019-02-05
    • 1970-01-01
    • 1970-01-01
    • 2021-06-16
    • 1970-01-01
    • 2023-02-04
    相关资源
    最近更新 更多