将动态数组导出到Excel PHPSpreadsheet

时间:2018-08-01 08:47:28

标签: phpspreadsheet

在我问之前,重要的是要知道我是编码新手,所以也许我的代码在某些部分并不是很干净。

我正在使用数据库网站。用户可以指定他们想要查看的信息,然后向他们显示一个动态列表,如html表。 html表中的原始数据来自SQL。 现在,用户应该可以将指定的动态html表下载到Excel。因此,我包括了PHPSpreadsheet。

以下是表格的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 Spreadsheet:

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)     , 空值];   mysqli_close($ link);   $ spreadsheet = new Spreadsheet();   $ sheet = $ spreadsheet-> getActiveSheet();   $ sheet-> fromArray(   $ arrayData,   空值,   'A1'   );   $ writer =新的Xlsx($ spreadsheet);   $ writer-> save('test.xlsx');

出现以下错误: 警告:mysqli_fetch_array():无法在1280行获取mysqli_result

我也试图像这样在数组中写数据:

  

$ arrayData = [   [$ lang_table_head_nr,如果($ milestone =“ all”){$ lang_table_head_relevance} else {$ lang_table_head_number},];

但是如果不允许使用数组。此外,该表是动态的,因此我无法处理每个单元格。一些用户可能只有A1和A2行,另一些用户可能只有50行。因此,不可能使用setCellValue做到这一点。

编辑:所以问题是,如何将html表获取到Excel。我找到了一些js(phpsreadsheet create excel from html table)。用户的testscript有效,但是我将表编码为php,因为它链接到来自其他php页面和SQL要求的过滤器。

感谢您的帮助。

最好的问候, 赫尔穆特

0 个答案:

没有答案