Заполните таблицу из файла Excel с помощью php - PullRequest
0 голосов
/ 09 марта 2012

Я пытаюсь использовать данные из таблицы Excel для заполнения таблицы HTML с использованием php. Я новичок в PHP. Я пытался использовать код из других вопросов, и они были близки, но не совсем то, что мне было нужно. Документ Excel будет периодически обновляться другим человеком.

Вот пример кода, который я использовал:

$file = file("/calendar.txt");

print "<table> 
<tr><td>Date</td><td>Start Time</td><td>Venue</td><td>Description</td></tr>";

foreach($file as $line){ 
$line = trim($line); 
$split = mb_split("\t",$line); 

print "<tr><td>$split[3]</td><td>$split[4]</td><td>$split[5]</td><td>$split[6]</td></tr>"; 
}

print "</table>";

?> 

Но приведенный выше пример не учитывает автопополнение. Итак, я попробовал это:

<table>
<?php
if (($handle = fopen("/calendar.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 5000, ",")) !== FALSE) {
      $num = count($data);
      for ($c=0; $c < $num; $c++) {
        print "<tr><td> $data[$c] </td></tr>";
    }

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

Но я не мог получить столбцы, которые хотел. Кроме того, оба примера не допускали создание новой строки / столбца, созданного в конце последнего столбца из исходного файла (т. Е. Данные из последнего столбца в первой строке объединяются с первым столбцом второй строки).

Я также хотел бы повторить строку: «В настоящее время нет предстоящих дат. Пожалуйста, зайдите позже!» если нет информации для отображения. И есть ли способ сделать colspan в php? Вот мои неудачные попытки: http://www.tonejones.com/calendar3.php
Я хочу, чтобы таблица выглядела так: http://www.tonejones.com/calendar.php

Ответы [ 2 ]

1 голос
/ 07 апреля 2017

Для заполнения данных из Excel в таблицу. Сначала нам нужно извлечь все данные в массив, затем мы отобразим все значения массива в таблицу. Получите ссылку для извлечения данных в массив. https://www.studytutorial.in/how-to-upload-or-import-an-excel-file-into-mysql-database-using-spout-library-using-php. ЕСЛИ вы получите массив, используйте код ниже

<table>
   <?php foreach($rows as $value){ ?>
  <tr>
    <td><?php echo $value; ?></td>
  </tr>
  <?php } ?>
</table>
0 голосов
/ 09 марта 2012

Ваш блок должен обходить набор ячеек, а не каждую отдельную ячейку:

print "<table>    
<tr><td>Date</td><td>Start Time</td><td>Venue</td><td>Description</td></tr>";
<?php 
if (($handle = fopen("/calendar.csv", "r")) !== FALSE) { 
    while (($data = fgetcsv($handle, 5000, ",")) !== FALSE) { 
        $num = count($data); 
        print "<tr>";
        for ($c=3; $c < $num; $c++) { 
            print "<td> $data[$c] </td>"; 
        } 
        print "<tr>"; 
    } 
    fclose($handle); 
} else {
    print "<tr><tdcolspan="4">
              There are no upcoming dates currently. Please check back soon!
           </td></tr>";
}
?>  
</table>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...