zoukankan      html  css  js  c++  java
  • PHP + Ajax处理大数据查询并导出Excel

    思路:使用ajax多次请求服务器,分段生成多个Excel,然后打包压缩成zip,超链接指向下载的文件然后下载。

    【HTML部分】

    <input type="button" value="确定导出" onclick="export()">
    <a style="display: none" id="export_success" href="/uploads/excel.zip">导出成功,点击下载Excel</a>

    【JS部分】

    function export(){
            if(!confirm('导出时间较长,请耐心等待,导出成功前请勿刷新页面!是否继续?')){
                return false;
            }
           
            ajaxGetExportData(1);
    
            var res = 0;
            $.ajax({
                type: "GET",
                async: false,
                url: "/download_zip.php",
                success:function(data){
                    res = data;
                }
            });
    
            if(res == 0){
                alert('导出失败');
            }else{
                $("#export_success").show();
            }
    
        }
        function ajaxGetExportData(page){
            var res = 0;
            $.ajax({
                type: "GET",
                async: false,
                url: "/export.php?page="+page,
                success:function(data){
                    res = data;
                }
            });
    
            if(res == 1){
                page++;
                ajaxGetExportData(page);
            }
            return true;
        }

    【PHP部分】

    export.php

    $page     = $_GET['page'];
    
    if($page <= 3){
        $file_path = 'uploads/excel';
        if (!file_exists($file_path)) {
            @mkdir($file_path,0777,true);
        }
        $file_name = $file_path . '/' . $page . '.txt';
        file_put_contents($file_name,'123');
    
        echo 1;
    }else{
        echo 0;
    }

     download_zip.php

    $file_path = BASEPATH . '../uploads/excel';
            $zip_name = BASEPATH . '../uploads/excel.zip';
            @unlink($zip_name);
    
            // 加载zip类
            $this->load->library('MakeZip');
            $res = new MakeZip($file_path,$zip_name);
            if($res){
                echo 1;
            }else{
                echo 0;
            }
    
            exit;

    最后一步:生成zip文件,参考:https://www.cnblogs.com/kccdzz/p/10273674.html

  • 相关阅读:
    LVM
    作业
    软件工程随笔
    woj1005-holding animals-01pack woj1006-Language of animals-BFS
    woj1002-Genesis woj1003-birthofnoah woj1004-noah's ark
    C++ new delete malloc free
    centos7+腾讯云服务器搭建wordpress
    C++ inline与operator
    next v5升级到next v7需要注意的地方
    python = 赋值顺序 && C++ side effect
  • 原文地址:https://www.cnblogs.com/rxbook/p/10273707.html
Copyright © 2011-2022 走看看