前端:

点击导出触发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. Python入门 —— 04字符串解析

    字符串 -字符串是 Python 中最常用的数据类型.(可以说是大多数语言都常用) 1. 创建字符串 ( '' 或 "" 和 '''''')(单,双和三引号)(字符串可以为空) - ...

  2. Echarts+百度地图

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. LinkedList的源码分析(基于jdk1.8)

    1.初始化 public LinkedList() { } 并未开辟任何类似于数组一样的存储空间,那么链表是如何存储元素的呢? 2.Node类型 存储到链表中的元素会被封装为一个Node类型的结点.并 ...

  4. hadoop生态搭建(3节点)-09.flume配置

    # http://archive.apache.org/dist/flume/1.8.0/# ===================================================== ...

  5. Hive--关联表(join)

    在hive中,关联有4种方式: 内关联:join on 左外关联:left join on 右外关联:right join on 全外关联:full join on 另外还有一种可实现hive笛卡儿积 ...

  6. ruby 字符串加密

    str = 'This is a test.rb!' #DES加密 puts str.crypt('salt') #MD532位加密 require 'digest' puts Digest::MD5 ...

  7. Vue 从零开始--搭建环境

    简要:继项目空闲后,开始着手vue的学习;为此向大家分享其中的艰辛和搭建办法,希望能够跟各位VUE大神学习探索,如果有不对或者好的建议告知下:*~*! 一.什么是VUE? 是一种node.js框架,特 ...

  8. AMD,CMD,CommonJs,UMD讲解

    一.CommonJS CommonJS规范加载模块是同步的,只有加载完成,才能执行后面的操作 CommonJS规范中的module.exports和require 每个文件就是一个模块,有自己的作用域 ...

  9. java static代码块执行时机

    之前一直认为static块是在class load的时候执行,今天在验证Spring初始化Context loader的时候,发现bean的static块并没有执行. Java代码: 1 Class ...

  10. React Router 4.0 实现路由守卫

    在使用 Vue 或者 Angular 的时候,框架提供了路由守卫功能,用来在进入某个路有前进行一些校验工作,如果校验失败,就跳转到 404 或者登陆页面,比如 Vue 中的 beforeEnter 函 ...