前端:

点击导出触发click事件,传值export指令和args关键字(args是指我们是否有查询取哪些数据)到控制器

$(document).on("click", "#go-export", function () {
var args = "";
if($('#keyword').val() != ''){
args = args + '/keyword/'+$('#keyword').val();
}
window.open('index/export/1'+args);
});

控制器:

        if(!empty($postData['keyword'])){
$map['project_name'] = array('like','%'.$postData['keyword'].'%');
}
$dataList = $goods->where($map)->select();
for ($i = 0; $i < sizeof($dataList); $i++) {
$result[$i]['id'] = $dataList[$i]['id'];
$result[$i]['合同号'] = $dataList[$i]['contract_number'];
$result[$i]['项目名称'] = $dataList[$i]['project_name'];
$result[$i]['销售月份'] = $dataList[$i]['sales_month'];
$result[$i]['房型'] = $dataList[$i]['room_type'];
$result[$i]['渠道'] = $dataList[$i]['channel'];
$result[$i]['售卖单价'] = $dataList[$i]['one_prices'];
$result[$i]['结算单价'] = $dataList[$i]['all_prices'];
$result[$i]['房间数量'] = $dataList[$i]['room_num'];
$result[$i]['减扣金额'] = $dataList[$i]['damount'];
$result[$i]['备注'] = $dataList[$i]['note'];
$result[$i]['更新日期'] = $dataList[$i]['update_time']; }
$csv = "";
for($i=0;$i<sizeof($result);$i++){
if($i == 0){
$head = '"';
foreach($result[$i] as $key=>$value){
if($head != '"'){
$head .= '","';
}
$head .= $key;
}
$head .= "\"\n";
$csv .= $head;
}
$csv .= '"' . implode('","', $result[$i]) . '"' . "\n";
}
$this->export($csv);
}

下载控制器:ecport方法

 public function export($res){
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=".date('YmdHis').".csv");
header("Content-Type: application/csv");
header("Content-Transfer-Encoding: binary");
print mb_convert_encoding($res,"GBK", "UTF-8");
//print iconv('UTF-8', 'GBK//IGNORE', $res); }

  

Thinkphp实现excel导出数据的更多相关文章

  1. Excel向数据库插入数据和数据库向Excel导出数据

    为了熟悉java里工作簿的相关知识点,所以找了“Excel向数据库插入数据和数据库向Excel导出数据”的功能来实现. 注意事项:1,mysql数据库: 2,需要导入的jar包有 jxl.jar,my ...

  2. vue2 Excel导出数据 js-xlsx的使用

    vue2 Excel导出数据 js-xlsx的使用 https://www.jianshu.com/p/ea115a8e9107 小世界最温暖 关注 2018.11.19 16:08 字数 280 阅 ...

  3. JAVA实现Excel导出数据(以写好的Excel模版导出)

    工作中经常会有将后台数据以Excel导出的功能. 简单的方法有将response的contentType设置为application/vnd.ms-excel: 或在JSP页面直接设置成: <% ...

  4. 通过Workbook类 生成Excel导出数据

    需求: 实现错误信息生成Excel保存到本地让用户查看. 刚开始使用了微软自带的Microsoft.Office.Interop.Excel类库. Microsoft.Office.Interop.E ...

  5. Thinkphp解决phpExcel导出数据量大导致内存溢出

    工作需要导出几万的数据量.操作比较频繁.之前数据在七八千是数据导出很慢.phpExcel是方便但是性能一般.现在改为使用csv导出数据:可以缓解内存压力,一次导出两三万是没问题的.当然服务器内存给力, ...

  6. Excel导出数据Excel.Application组件权限设置方法

    很多网络应用系统都会涉及到数据采用Excel方式导出的模块,部分朋友问我到底怎么弄,其实方式很多种,目前比较优秀的方式还是直接用Excel的Excel.Application方式比较合适. 采用Exc ...

  7. thinkphp5中使用excel导出数据表格(包涵图片)

    首先使用composer require phpoffice/phpexcel下载安装phpexcel包. 将包放入extend下面. 不附加图片的导出 /** * 导出excel(不带图片) * @ ...

  8. 使用html替代excel导出数据的优势和技巧

    之前一直使用NPOI或者微软office官方组件导出excel,但是多多少少会有写小问题,不是数据量不能过大(xls的问题,用xlsx就可以更大了),就是速度慢,或者文件体积太大 中途采用过csv(逗 ...

  9. thinkphp添加excel更新数据表数据(优化篇)

    由于主管说使用saveAll更新数据效率太低,要改用sql语句一次执行现在修改 /** * excel开启上传 * author: panzhide * @return array * Date: 2 ...

随机推荐

  1. java 计算器算法脚本

    import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; public String Count(Strin ...

  2. 关于Django中JsonResponse返回中文字典编码错误的解决方案

    解决方案:JsonResponse(data, json_dumps_params={'ensure_ascii':False}) ! data是需要渲染的字典 def master(request) ...

  3. collections.namedtuple()命名序列元素

    ## collections.namedtuple()命名序列元素 from collections import namedtuple Student = namedtuple("Stud ...

  4. 可以提高php编程效率的20个要点

    整理了可以提高php编程效率的20个要点,发博客记录一下,需要的朋友可以参考.    1.如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍. 2.$row['id' ...

  5. thinkphp 5.1/tp5.1 route路由bug

    tp5.1下面RuleItem类中,match方法. 如果同一个控制器下面,写了两个路由,后一个路由比包含前一个路由,则访问后一个路由地址的时候,会跳转到前面定义的那个路由

  6. day 15 装饰器

    装饰器(重点,难点) 开闭原则:             对功能的扩展开放            对代码的修改是封闭的 在目标函数前和后插入一段新的代码.不改变原来的代码 通用装饰器写法: # 存在的 ...

  7. Linux GPIO键盘驱动开发记录_OMAPL138

    Linux GPIO键盘驱动开发记录_OMAPL138 Linux基本配置完毕了,这几天开始着手Linux驱动的开发,从一个最简单的键盘驱动开始,逐步的了解开发驱动的过程有哪些.看了一下Linux3. ...

  8. 20145202mc《计算机病毒》实践2

    网站检测 http://www.virustotal.com太慢了实在,所以我换成了http://www.virscan.org/ lab01-01.exe 文件行为 lab01-01.dll 可以基 ...

  9. 北京Uber优步司机奖励政策(1月11日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  10. SpringBoot学习:整合shiro(rememberMe记住我后自动登录session失效解决办法)

    项目下载地址:http://download.csdn.NET/detail/aqsunkai/9805821 定义一个拦截器,判断用户是通过记住我登录时,查询数据库后台自动登录,同时把用户放入ses ...