Экспорт динамического массива в таблицу Excel PHPS

Прежде чем я спрашиваю, важно знать, что я новичок в кодировании, поэтому, возможно, мой код не совсем чистый в некоторых частях.

Я работаю над сайтом базы данных. Пользователи могут указать свою информацию, которую они хотят видеть, и затем они получают динамический список в виде HTML-таблицы. Исходные данные из таблицы html исходят из SQL. Теперь пользователи должны иметь возможность загружать указанную динамическую HTML-таблицу в Excel. Поэтому я включил таблицу PHPS.

Далее небольшое представление HTML-кода для таблицы:

$item_count = 0;    
echo '<p>';

while ($line = mysqli_fetch_array($result1, MYSQLI_ASSOC)) {if (!$item_count) {
        echo '<table class="table table-hover">';
            echo "<tr>";

                echo '<th bgcolor="#f4f6f7"><div align="center">'.$lang_table_head_nr.'</div></th>';
                 sortierbar
                if ($milestone=="all"){
                echo '<th bgcolor="#f4f6f7"><div align="center">'.$lang_table_head_relevance.'</div></th>';
                }
                else {
                echo '<th bgcolor="#f4f6f7"><div align="center">'.$lang_table_head_number.'</div></th>';
                } echo '</tr>';
    }
    $item_count = ++$item_count;                
        echo '<tr>';
            echo '<td><div align="center">';
            echo $item_count;
            echo '</div></td>';// now comes the declaration of $relevance, which isn't important for the Problem, so i put it out of the code..             }
                echo '<td><div align="center">';
                if ($milestone == 'all') echo $relevance;
                else echo $line[$type.'_number'];   
                echo '</div></td></tr></table>';

С помощью этого кода таблица создается динамически для каждого ввода пользователя. Это всего лишь 2 столбца таблицы, которых на самом деле гораздо больше. В начале php-файла я включил таблицу PHP:

require 'd:/xampp/vendor/autoload.php'; use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

И в конце файла я попытался управлять этим, чтобы получить его в файл Excel, который можно загрузить от пользователя.

mysqli_free_result ($ result1); $ arrayData = [mysqli_fetch_array ($ result1, MYSQLI_ASSOC), NULL]; mysqli_close ($ ссылка); $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); $sheet->fromArray( $arrayData, NULL, 'A1'); $writer = new Xlsx($ электронные таблицы); $ Писатель-> Сохранить ('test.xlsx');

Появляется следующая ошибка: Предупреждение: mysqli_fetch_array(): не удалось получить mysqli_result в строке 1280

Я также попытался записать данные прямо в массив так:

$ arrayData = [[$ lang_table_head_nr, if ($ milestone = "all") {$ lang_table_head_relevance} else {$ lang_table_head_number},];

Но если в массиве не допускается. Кроме того, таблица является динамической, поэтому я не могу обратиться к каждой ячейке. У некоторых пользователей могут быть только строки А1 и А2, у других - 50 строк. Так что это невозможно сделать с помощью setCellValue.

Изменить: Итак, вопрос в том, как получить HTML-таблицу в Excel. Я нашел несколько JS ( phpsreadsheet создать Excel из таблицы HTML). Тестовый скрипт от пользователя работает, но я закодировал таблицу в php, потому что она связана с фильтрами из других страниц php и требованиями SQL.

Спасибо за вашу помощь.

С наилучшими пожеланиями, Хельмут

0 ответов

Другие вопросы по тегам