调整现有脚本以将 csv 转换为 html 表以包含 <tfoot>

问题描述 投票:0回答:1

我已经使用下面的代码多年,将大型 csv 文件中的选定数据转换为 html 表。它选择要呈现的特定范围的行和列。

是否可以添加一个命令将最后四个选定的行包装在 tfoot 标记中?因此,在此示例中,为第 167-170 行。类似于第 147 行被封装在头部中。

<?php
        $row = 1;
        
        if(($handle = fopen("CSV/thesfpsquads23.csv", "r")) !== false) {
        
            $table1 = '<table id="exampleaugnov" class="sfpsquad augnov">';
        
            while (($data = fgetcsv($handle, 1000, ",")) !== false) {
        
                $table1Add = false;
                if($row >=147 && $row <= 170)
                    $table1Add = true;
        
                $num = count($data);
        
                if($row == 147) {
        
                    $table1 .= '<thead><tr>';
        
                    for($c = 0; $c <= 21; $c++) {
                        $value = empty($data[$c]) ? "0" : $data[$c];
        
                        $table1 .= '<th>'.$value.'</th>';
                    }
        
                    $table1 .= '</tr></thead><tbody>';
        
                } else {
        
                    if($table1Add) $table1 .= '<tr>';
        
                    for($c = 0; $c <= 21; $c++) {
                        $value = empty($data[$c]) ? "0" : $data[$c];
        
                        if($table1Add) $table1 .= '<td>'.$value.'</td>';
                    }
        
                    if($table1Add) $table1 .= '</tr>';
        
                }
        
                $row++;
        
            }
        
            $table1 .= '</tbody></table>';
            fclose($handle);
        
            echo $table1;
        }
        ?>
php html csv table-footer
1个回答
0
投票

好吧,这段代码可以改进,尝试使用人工智能,但希望它能正常工作。 第 140 排 - 内部

<thead>
167-170排里面
<tfoot>
介于
<tbody>
之间 并丢弃其他行。

$row = 0;
if (($handle = fopen("CSV/thesfpsquads23.csv", "r")) !== false) {
    $table1 = '<table id="exampleaugnov" class="sfpsquad augnov">';
    while (($data = fgetcsv($handle, 1000, ",")) !== false) {
        $row++;
        if ($row < 147 || $row > 170) {
            continue;
        }
        $num = count($data);
        if ($row == 147) {
            $table1 .= '<thead><tr>';
            for ($c = 0; $c <= 21; $c++) {
                $value = empty($data[$c]) ? "0" : $data[$c];
                $table1 .= '<th>' . $value . '</th>';
            }
            $table1 .= '</tr></thead><tbody>';
        } else {
            if ($row == 167) {
                $table1 .= '</tbody><tfoot>';
            }

            $table1 .= '<tr>';
            for ($c = 0; $c <= 21; $c++) {
                $value = empty($data[$c]) ? "0" : $data[$c];
                $table1 .= '<td>' . $value . '</td>';
            }
            $table1 .= '</tr>';

            if ($row == 170) {
                $table1 .= '</tfoot>';
            }
        }
    }
    $table1 .= '</table>';
    fclose($handle);
    echo $table1;
}
© www.soinside.com 2019 - 2024. All rights reserved.