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 开头照例扯淡 自从各种脱裤门事件开始层出不穷,在下就学乖了,各个地方的密码全都改成不一样的,重要帐号的密码定期更换,生怕被人社出祖宗十八代的我,甚至开始用起了假名字,我给自己起一新网名”兴才 ...
随机推荐
- jQuery Easing 动画效果扩展--使用Easing插件,让你的动画更具美感。
jQuery Easing 是一款比较老的jQuery插件,在很多网站都有应用,尤其是在一些页面滚动.幻灯片切换等场景应用比较多.它非常小巧,且有多种动画方案供选择,使用简单,而且免费. 引入Eas ...
- Win8交互UX——笔交互
针对触摸输入优化 Window 应用商店应用设计,并在默认情况下获得基本的笔支持. 本主题介绍笔交互的设计注意事项.有关实现笔交互的信息,请参阅响应笔和触笔交互. 笔交互 通过使用笔创建手写便笺.绘图 ...
- css方法 - 移动端h5在iphonex的适配
@media only screen and (device-width:375px) and (device-height:812px) and (-webkit-device-pixel-rati ...
- Linq 集合处理(Union)
关于Union的两种情况 一.简单值类型或者string类型处理方式(集合需要实现IEnumerable接口) #region int类型 List<, , , , , }; List<, ...
- 如何区分一个系统是redhat centos ubuntu fedora debian中的哪一种
一.问题概述 有时候拿到一个环境,我们并不清楚是什么系统,是redhat啊,还是centos呢,是centos 6呢,还是centos 7呢. 这里参考了一篇博文: https://www.cnblo ...
- vue实现按需加载(懒加载)
1.router文件中使用 export default new Router({ routes: [{ path: '/', name: 'Post', component: () => im ...
- 5-5 ES6的模块化的基本规则或特点
一.AMD, CMD, CommonJs和ES6对比 1.AMD ==> 是RequireJS在推广过程中对模块定义的规范化产出 // RequireJS定义标准, 导步加载依赖, 依赖前置 d ...
- windows桌面通知区域不显示音量图标的解决方法
在windows系统桌面通知区域一般都是显示的输入法.电源.网络.音量及托盘的应用程序等内容 通知区域图标显示与否与控制面板的通知区域图标的设置有关,我们有时会遇到通知区域不显示个别图标的情况,如不显 ...
- 关于kvm虚拟机的克隆方法总结
kvm虚拟机的克隆分为两种情况,第一种kvm宿主机上对虚拟机直接克隆 第二种通过复制配置文件与磁盘文件的虚拟机复制克隆(适用于异机的静态迁移). 现笔者将分别两种kvm虚拟机克隆的的详细操作过程都记录 ...
- JavaWeb 后端 <三> 之 Response Request
1. 响应对象 Response(重点:HTTP协议响应部分) 查看