Javascript 如何使用jQuery将分页表导出到excel

Javascript 如何使用jQuery将分页表导出到excel,javascript,php,jquery,Javascript,Php,Jquery,如何使用jQuery或JavaScript以分页方式将数据从表导出到Excel 我试试这个代码 <script type="text/javascript"> var tableToExcel = (function() { var uri = 'data:application/vnd.ms-excel;base64,' , template = '<html xmlns:o="urn:schemas-m

如何使用
jQuery
JavaScript
分页方式将数据从
导出到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>

var tableToExcel=(函数(){
var uri='data:application/vnd.ms excel;base64,'
,模板=“{table}”
,base64=函数{return window.btoa(unescape(encodeURIComponent))}
,format=函数(s,c){返回s.replace(/{(\w+)}/g,函数(m,p){返回c[p];})}
返回函数(表、名称){
如果(!table.nodeType)table=document.getElementById(table)
var ctx={工作表:名称| |'工作表',表:table.innerHTML}
window.location.href=uri+base64(格式(模板,ctx))
}
})()

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

通过删除查询中的限制,确保脚本获取所有数据

  • 创建一个文件export_data.php
  • 将查询条件放在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);
    }
    
  • 发出ajax请求以导出_data.php

  • 这将为您提供完整的数据。您需要根据需要更改sql。

    我相信您正在服务器端进行分页,并且只将1页数据带到前端。因此,为了获取所有数据,服务器请求导出数据,从db和fputcsv查询所有数据。这将是实现这一目标的最简单的方法。@Gunnrryy你能告诉我你的脚本答案我应该删除哪个脚本吗??