前端:

点击导出触发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. 【HDOJ 1337】I Hate It(线段树维护区间最大值)

    Problem Description 很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少.这让很多学生很反感. 不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写 ...

  2. CF考古活动

    Codeforces Beta Round #1 http://codeforces.com/contest/1 A.测试用水题,呵呵.给三个数nma,求ceil(n/a)*ceil(m/a). 长整 ...

  3. Maven DebugConfiguration配置运行内存

    -Xms256M -Xmx512M -XX:PermSize=256m -XX:MaxPermSize=512m

  4. 在IOS端点击数字后会调起系统拨号界面

    在IOS端点击数字后会调起系统拨号界面,解决方案: <meta name="format-detection" content="telephone=no" ...

  5. PHP运行原理之Opcodes

    在我之前的博客<Laravel5框架性能优化技巧>中提到开启OPcache可以提升php性能.那么为什么开启OPcache就可以提升php运行性能呢?这里就要提到php的运行原理了--Op ...

  6. python学习——函数进阶

    首先来看下面这个函数. def func(x,y): bigger = x if x > y else y return bigger ret = func(10,20) print(ret) ...

  7. 笔记-jinja2语法

    笔记-jinja2语法 1.      基本语法 控制结构 {% %} 变量取值 {{ }} 注释 {# #} 2.      变量 最常用的是变量,由Flask渲染模板时传过来,比如上例中的”nam ...

  8. 长沙Uber优步司机奖励政策(12月21日到12月27日)

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

  9. 一分钟了解spark的调优

    Tuning Spark 数据序列化 内存调优 内存管理概述 确定内存消耗 调整数据结构 序列化 RDD 存储 垃圾收集调整 其他注意事项 并行度水平 减少任务的内存使用 广播大的变量 数据本地化 概 ...

  10. 开发Windows服务

          在开发Windows服务时需要注意一点,如果在开发完成后,需要通过命令来进行安装的,那么在开发的时候,需要在服务类上面添加一个安装文件.如下图:               添加完成后,就 ...