【问题标题】:PHP/HTML Excel export buttonPHP/HTML Excel 导出按钮
【发布时间】:2018-06-04 00:49:15
【问题描述】:

我需要制作一个按钮,单击该按钮会将页面上 HTML 表单中的所有数据导出到 excel 文件中。谁能帮我解决这个问题,我是 PHP 新手,不知道从哪里开始。

        <div class="left col-md-12 form-group" >


            <form method="post" id="triallesson_form">
                <div class="table">

                <table class="table table-header-rotated table-condensed table-striped table-hover"  style="width: 100%;">
                    <th></th>
                    <th class="col-xs-1 not-rotate"><div><span><?= text::$string['person_name']            ;?></span></div>  </th>

                    <th class="col-xs-1 not-rotate"><div><span><?= text::$string['person_telphone']        ;?></span></div>  </th>
                    <th class="col-xs-1 not-rotate"><div><span><?= text::$string['location_name']          ;?></span></div>  </th>
                    <th class="col-xs-3 not-rotate"><div><span><?= text::$string['class_date']           ;?></span></div>  </th>

                    <th class="col-xs-2 not-rotate"><div><span><?= text::$string['triallesson_type']     ;?></span></div>  </th>
                    <th class="col-xs-2 not-rotate"><div><span><?= text::$string['triallesson_email']     ;?></span></div>  </th>
                    <th class="col-xs-2 not-rotate"><div><span>via</span></div>  </th>

                    <th class="rotate-45"><div><span><?= text::$string['triallesson_called']    ;?></span></div>  </th>
                    <th class="rotate-45"><div><span><?= text::$string['triallesson_confirmd']  ;?></span></div>  </th>
                    <th class="rotate-45"><div><span><?= text::$string['triallesson_show']      ;?></span></div>  </th>
                    <th class="rotate-45"><div><span><?= text::$string['triallesson_sign_up']   ;?></span></div>  </th>
                    <th class="rotate-45"><div><span><?= text::$string['triallesson_cancelled'] ;?></span></div>  </th>
                    <th class="rotate-45" title="<?= Text::$string['triallesson_sms_info'];?>"><div><span><?= Text::$string['triallesson_sms']       ;?></span></div>  </th>
                    <th></th>
                    <?= $content[1]; ?>
                </table>
                    <input type="hidden" name="date1" value="<?=$con->date1?>">
                <input type="hidden" name="date2" value="<?=$con->date2?>"></form>
        </div>
    </div>

上次我没有添加代码对不起。 这是我的数据将在其中显示的表格。 我的意图是,当我单击同一页面上的按钮时,它将从表中获取所有数据并将其导出到 XLS 或 CSV 文件中。

如果需要任何进一步的信息,我会添加它,提前谢谢你。

【问题讨论】:

  • 你做了什么。这不是我们将提供免费服务的网站。至少尝试一下并向我们展示您遇到问题的代码,以便我们为您提供帮助。
  • 有关提示,请参阅一些 jquery 方法。我使用 jquery 在 excel 中下载数据。尝试下载一些 jquery 代码,如果您遇到困难,请来这里提供代码,以便我们为您提供帮助。
  • php 不提供这种类型的特殊按钮。看这里stackoverflow.com/questions/4249432/export-to-csv-via-php
  • 您能否为您的问题添加更多细节?您要捕获什么 - 当前在 input/textareas/selects 等中的内容?您是否想在按下“提交”按钮时执行此操作(例如) - 或者您是否想将表单中的信息存储到数据库中,然后从那里导出?
  • @doublesidestickytape 嘿,对不起,我有点不清楚。我编辑了我的问题。我希望现在更清楚了。

标签: php html excel forms button


【解决方案1】:

您正在使用 PHP 创建表格,但使用 JavaScript 从生成的 HTML 表格创建 Excel 文件可能更简单,因为有多种工具可用于执行此操作,这些工具并不难使用,例如如:https://github.com/clarketm/TableExport

例如以此为例:https://tableexport.v3.travismclarke.com/examples/position.html 对于您的表格,您的代码可能如下所示:

<div class="left col-md-12 form-group" >
    <form method="post" id="triallesson_form">
        <div class="table">
            <table id="myDataTable" class="table table-header-rotated table-condensed table-striped table-hover" style="width: 100%;">
                <thead>
                    <th></th>
                    <th class="col-xs-1 not-rotate"><div><span><?= text::$string['person_name']            ;?></span></div>  </th>
                    <th class="col-xs-1 not-rotate"><div><span><?= text::$string['person_telphone']        ;?></span></div>  </th>
                    <th class="col-xs-1 not-rotate"><div><span><?= text::$string['location_name']          ;?></span></div>  </th>
                    <th class="col-xs-3 not-rotate"><div><span><?= text::$string['class_date']           ;?></span></div>  </th>
                    <th class="col-xs-2 not-rotate"><div><span><?= text::$string['triallesson_type']     ;?></span></div>  </th>
                    <th class="col-xs-2 not-rotate"><div><span><?= text::$string['triallesson_email']     ;?></span></div>  </th>
                    <th class="col-xs-2 not-rotate"><div><span>via</span></div>  </th>
                    <th class="rotate-45"><div><span><?= text::$string['triallesson_called']    ;?></span></div>  </th>
                    <th class="rotate-45"><div><span><?= text::$string['triallesson_confirmd']  ;?></span></div>  </th>
                    <th class="rotate-45"><div><span><?= text::$string['triallesson_show']      ;?></span></div>  </th>
                    <th class="rotate-45"><div><span><?= text::$string['triallesson_sign_up']   ;?></span></div>  </th>
                    <th class="rotate-45"><div><span><?= text::$string['triallesson_cancelled'] ;?></span></div>  </th>
                    <th class="rotate-45" title="<?= Text::$string['triallesson_sms_info'];?>"><div><span><?= Text::$string['triallesson_sms']       ;?></span></div>  </th>
                    <th></th>
                </thead>
                <tbody>
                    <?= $content[1]; ?>
                </tbody>
            </table>
            <input type="hidden" name="date1" value="<?=$con->date1?>">
            <input type="hidden" name="date2" value="<?=$con->date2?>">
        </div>
    </form>
</div>

<script type="text/javascript" src="../bower_components/jquery/dist/jquery.min.js"></script>
<script type="text/javascript" src="../bower_components/js-xlsx/dist/xlsx.core.min.js"></script>
<script type="text/javascript" src="../bower_components/blobjs/Blob.min.js"></script>
<script type="text/javascript" src="../bower_components/file-saverjs/FileSaver.min.js"></script>
<script type="text/javascript" src="../dist/js/tableexport.min.js"></script>
<script>
    var PositionTable = document.getElementById('myDataTable');
    new TableExport(PositionTable, {
        position: 'top'
    });
</script>

对您的 HTML 所做的唯一必要更改是向表中添加一个 ID 属性:&lt;table id="myDataTable" ...

然后在下方的 JavaScript 中再次引用它:var PositionTable = document.getElementById('myDataTable');

您需要更新包含文件的位置以适合您获得它们的位置(xlsx.core.min.js、Blob.min.js、FileSaver.min.js、tableexport.min.js、等等。)。如果不需要,请删除 jQuery 包含。

然后您会看到 Excel 下载按钮出现在您的表格下方,就像在示例中一样。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多