我已经使用下面的代码多年,将大型 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;
}
?>
好吧,这段代码可以改进,尝试使用人工智能,但希望它能正常工作。 第 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;
}