Импортировать определенные строки и столбцы из CSV-файла в таблицу с помощью php

Я очень новичок в php, но довольно успешно экспериментировал с использованием «fgetcsv», чтобы ввести файл CSV и преобразовать его в таблицу html.

Однако у меня также есть большой файл CSV с 70 столбцами и 700 строками, но я хочу отображать только столбцы с 1 по 47 и строки с 3 по 21 в одной таблице, а затем те же столбцы, но строки с 22 по 44 в другой таблице.

Я был бы признателен за помощь в этом, ниже приведен код, который я сейчас использую:

<?php

$row = 1;
if (($handle = fopen("CSV/test.csv", "r")) !== FALSE) {

    echo '<table border="1">';

    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $num = count($data);
        if ($row == 1) {
            echo '<thead><tr>';
        }else{
            echo '<tr>';
        }

        for ($c=0; $c < $num; $c++) {
            //echo $data[$c] . "<br />\n";
            if(empty($data[$c])) {
               $value = "&nbsp;";
            }else{
               $value = $data[$c];
            }
            if ($row == 1) {
                echo '<th>'.$value.'</th>';
            }else{
                echo '<td>'.$value.'</td>';
            }
        }

        if ($row == 1) {
            echo '</tr></thead><tbody>';
        }else{
            echo '</tr>';
        }
        $row++;
    }

    echo '</tbody></table>';
    fclose($handle);
}
?>

person user2653322    schedule 23.08.2013    source источник


Ответы (1)


для столбцов попробуйте это

for ($c=0; $c < 47; $c++) {
        //echo $data[$c] . "<br />\n";
        if(empty($data[$c])) {
           $value = "&nbsp;";
        }else{
           $value = $data[$c];
        }
        if ($row == 1) {
            echo '<th>'.$value.'</th>';
        }else{
            echo '<td>'.$value.'</td>';
        }
    }

Таким образом, вы печатаете ячейки между столбцом 0 и столбцом 47. Для строки вы должны установить счетчик a, а внутри оператора while использовать if для печати строк в нужном вам диапазоне. Лучше установить условие выхода в то время как для выхода после строки 44, если вам не нужны другие.

person Babu887    schedule 23.08.2013