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(); var res = ;
$.ajax({
type: "GET",
async: false,
url: "/download_zip.php",
success:function(data){
res = data;
}
}); if(res == ){
alert('导出失败');
}else{
$("#export_success").show();
} }
function ajaxGetExportData(page){
var res = ;
$.ajax({
type: "GET",
async: false,
url: "/export.php?page="+page,
success:function(data){
res = data;
}
}); if(res == ){
page++;
ajaxGetExportData(page);
}
return true;
}
【PHP部分】
export.php
$page = $_GET['page']; if($page <= ){
$file_path = 'uploads/excel';
if (!file_exists($file_path)) {
@mkdir($file_path,,true);
}
$file_name = $file_path . '/' . $page . '.txt';
file_put_contents($file_name,''); echo ;
}else{
echo ;
}
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 ;
}else{
echo ;
} exit;
最后一步:生成zip文件,参考:https://www.cnblogs.com/kccdzz/p/10273674.html
PHP + Ajax处理大数据查询并导出Excel的更多相关文章
- Facebook 正式开源其大数据查询引擎 Presto
Facebook 正式宣布开源 Presto —— 数据查询引擎,可对250PB以上的数据进行快速地交互式分析.该项目始于 2012 年秋季开始开发,目前该项目已经在超过 1000 名 Faceboo ...
- SQL命令语句进行大数据查询如何进行优化
SQL 大数据查询如何进行优化? 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索 2.应尽量避免在 where 子句中对字段进行 null 值 ...
- mysql 5.7 innodb count count(*) count(1) 大数据 查询慢 耗时多 优化
原文:mysql 5.7 innodb count count(*) count(1) 大数据 查询慢 耗时多 优化 问题描述 mysql 5.7 innodb 引擎 使用以下几种方法进行统计效率差不 ...
- 比hive快10倍的大数据查询利器presto部署
目前最流行的大数据查询引擎非hive莫属,它是基于MR的类SQL查询工具,会把输入的查询SQL解释为MapReduce,能极大的降低使用大数据查询的门槛, 让一般的业务人员也可以直接对大数据进行查询. ...
- 海胜专访--MaxCompute 与大数据查询引擎的技术和故事
摘要:在2019大数据技术公开课第一季<技术人生专访>中,阿里巴巴云计算平台高级技术专家苑海胜为大家分享了<MaxCompute 与大数据查询引擎的技术和故事>,主要介绍了Ma ...
- Mysql查询结果导出Excel表
Mysql查询结果导出Excel表: 一句转换方式:$ mysql -uops -p'GCNgH000KP' dtbs -e 'select * from t_proxy__record;' --de ...
- SQL 大数据查询如何进行优化?
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而 ...
- [saiku] 使用 Apache Phoenix and HBase 结合 saiku 做大数据查询分析
saiku不仅可以对传统的RDBMS里面的数据做OLAP分析,还可以对Nosql数据库如Hbase做统计分析. 本文简单介绍下一个使用saiku去查询分析hbase数据的例子. 1.phoenix和h ...
- 技术分享:如何用Solr搭建大数据查询平台
0×00 开头照例扯淡 自从各种脱裤门事件开始层出不穷,在下就学乖了,各个地方的密码全都改成不一样的,重要帐号的密码定期更换,生怕被人社出祖宗十八代的我,甚至开始用起了假名字,我给自己起一新网名”兴才 ...
随机推荐
- Git学习之Git恢复进度
================================================ 继续暂存区未完成的实践 ======================================= ...
- vue经验 - 实战疑点总结
1.注册全局组件(是一个单vue页面组成的一个组件,而不是现拼的template结构) 结构: 代码:main.js import UserList from './components/UserLi ...
- 使用 mysql workbench 建议
在日常使用mysql workbench时,未免操作失误,不建议启用远程管理.
- (转载)解决AndroidStudio导入项目在 Building gradle project info 一直卡住
源地址http://blog.csdn.net/yyh352091626/article/details/51490976 Android Studio导入项目的时候,一直卡在Building gra ...
- java中调用操作系统的命令
java.lang.Runtime类提供了exec() 方法来执行操作系统的命令. 使用静态的Runtime.getRuntime()方法可以获得当前的java应用程序对应的Runtime类的实例 R ...
- linux常用命令之scp详解
使用scp的前提: 1.服务端启动了sshd服务 2.是本地和远程两端的系统都必须要有scp这个命令.即openssh-clients软件包 [安装方法] [root@ ~]# yum install ...
- 【CF886E】Maximum Element DP
[CF886E]Maximum Element 题意:小P有一个1-n的序列,他想找到整个序列中最大值的出现位置,但是他觉得O(n)扫一遍太慢了,所以它采用了如下方法: 1.逐个遍历每个元素,如果这个 ...
- Angular打开页面隐藏显示表达式
1.使用 ng-cloak, 同时要在css加入一行 [ng-cloak] {display: none;} 样式 [ng:cloak], [ng-cloak], [data-ng-cloak], [ ...
- H5填坑笔记--持续更新
最近一直在做移动端的页面,发现很多的坑,这里做一下总结,填填坑…… css常见的问题(一) 一.iOS键盘首字母自动大写 IOS的机子,默认英文输入法状态下,首字母是自动大写的,有时候挺烦人的. 在i ...
- Mavlink - 无人机通讯协议
http://qgroundcontrol.org/mavlink/start mavlink协议介绍https://pixhawk.ethz.ch/mavlink/ 消息简介 MAVLink简介 M ...