javascript - 如何使用jQuery将分页表格导出到excel

标签 javascript php jquery

如何使用jQueryJavaScript将带有分页table中的数据导出到Excel。

我尝试这个代码

<script type="text/javascript">
        var tableToExcel = (function() {
            var uri = 'data:application/vnd.ms-excel;base64,'
                , template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body><table>{table}</table></body></html>'
                , base64 = function(s) { return window.btoa(unescape(encodeURIComponent(s))) }
                , format = function(s, c) { return s.replace(/{(\w+)}/g, function(m, p) { return c[p]; }) }
            return function(table, name) {
                if (!table.nodeType) table = document.getElementById(table)
                var ctx = {worksheet: name || 'Worksheet', table: table.innerHTML}
                window.location.href = uri + base64(format(template, ctx))
            }
        })()
    </script>

但是我只能导出分页的一页,我想导出表中的所有数据。我能做什么??

最佳答案

  1. 创建一个文件export_data.php
  2. 将查询条件放入export_data.php

例如。

$link = mysqli_connect("localhost", "my_user", "my_password", "my_db");
$sql = "SELECT * FROM `users` WHERE 1";
$result = mysqli_query($link, $sql);

if (mysqli_num_rows($result) > 0) {
    $file_name = 'All Users.csv';
    header('Content-Type: text/csv; charset=utf-8');
    header("Content-Disposition: attachment; filename = $file_name");
    $output = fopen('php://output', 'w');

    foreach ($result as $row) {
        fputcsv($output, $row);
    }
    fclose($output);
}
  • 向export_data.php发出ajax请求
  • 这应该会为您提供完整的数据。您需要根据需要更改sql。

    关于javascript - 如何使用jQuery将分页表格导出到excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45027026/

    相关文章:

    php - 在 DNS 缓存中找不到 curl 错误主机名

    javascript - 如何将网页从文本区域发送到 iframe

    javascript - 创建要在 CSS 中使用的 JavaScript 元素

    javascript - 如何在循环内的 JQuery post 方法中获取一次警报?

    php - 更新mysql记录时获取纯数组文本

    php - Html5 视频在缓冲时在 safari 中重复

    javascript - Jquery UI.Multiselect 无法正常工作

    javascript - AngularJS:如何将常量对象绑定(bind)到指令

    jqueryUI 可排序 : how to force update of placeholder position while dragging

    jquery - 浏览器可以处理的json对象的大小有限制吗?