全部导出和时间导出

html代码,全程并不需要引用什么插件

<include file="public@header"/>
<link href="__TMPL__/public/assets/css/style.css" rel="stylesheet">
</head>
<body>
<div class="margin-top-20 body_top">
<div class="form-inline">
<input type="submit" name="all" class="btn btn-info quanbu" value="全部导出"/> <input style="margin-left: 15px" type="text" name="data" placeholder="日期范围" class="form-control month" id="test6" autocomplete="off">
<input type="submit" class="btn btn-info shijian" value="导出"/>
</div>
</div> </body>
<script src="__STATIC__/js/admin.js"></script>
<script src="__STATIC__/js/laydate/laydate.js"></script>
<script>
//日期范围
laydate.render({
elem: '#test6'
,range: true
}); $('.quanbu').on('click',function () {
$.ajax({
url: "/systems/Sum/quanbu",
type: "post",
dataType: "json",
// data:{'data':nian},
success: function (back) {
if (back.code == 1) {
document.location.href = (back.data);
} else {
layer.msg("导出csv出错!");
}
},
error: function (e) {
console.log(e)
}
});
}); $('.shijian').on('click',function () {
var data=$('.month').val(); $.ajax({
url: "/systems/Sum/shijian",
type: "post",
dataType: "json",
data:{'data':data},
success: function (back) {
if (back.code == 1) {
document.location.href = (back.data);
} else {
layer.msg("导出csv出错!");
}
},
error: function (e) {
console.log(e)
}
});
})
</script>

php代码

 public function quanbu(){
//全部导出
$req=Db::name('cy_sum')
->alias('a')
->field('s.store_name,b.company_name as bloc_name,d.company_name as dealer_name,a.type,a.garment,a.garment_function,a.clothing,a.clothing_function,a.functional_finishing,a.create_time')
->join('store s','a.sid=s.id')
->join('bloc b','a.bid=b.id')
->join('dealer d','a.did=d.id')
->select()
->toArray(); foreach ($req as $k=>$v){
switch ($req[$k]['type']) {
case 1:
$req[$k]['type'] = '定制';
break;
case 2:
$req[$k]['type'] = '定制团单';
break;
case 3:
$req[$k]['type'] = '样衣';
break;
case 4:
$req[$k]['type'] = '大货';
break;
case 5:
$req[$k]['type'] = '面料试样';
break;
case 6:
$req[$k]['type'] = '售后订单';
break;
}
} $csv_data = '';
//标题
$csv_data .= "门店,集团,经销商,订单类型,成衣数量,成衣+功能数量,制衣数量,制衣+功能数量,后整理加工,日期\r\n"; $row = array();
foreach ($req as $k=>$val){
$row['store_name'] = $val['store_name'];
$row['bloc_name'] = $val['bloc_name'];
$row['dealer_name'] = $val['dealer_name'];
$row['type'] = $val['type'];
$row['garment'] = $val['garment'];
$row['garment_function'] = $val['garment_function'];
$row['clothing'] = $val['clothing'];
$row['clothing_function'] = $val['clothing_function'];
$row['functional_finishing'] = $val['functional_finishing'];
$row['create_time'] = date('Y-m-d',$val['create_time']);
$csv_data .= join(',', array_values($row))."\r\n";
} $file_name = date('YmdHis', time()).'detail.csv';
//导出数据
$url = save_csv($file_name, $csv_data); $this->success('成功!','',$url);
exit();
} public function shijian(){ $list=$this->request->param();
//时间导出
$data=explode("- ",$list['data']); $data[0]=strtotime($data[0]);
$data[1]=strtotime($data[1]); $req=Db::name('cy_sum')
->alias('a')
->field('s.store_name,b.company_name as bloc_name,d.company_name as dealer_name,a.type,a.garment,a.garment_function,a.clothing,a.clothing_function,a.functional_finishing,a.create_time')
->join('store s','a.sid=s.id')
->join('bloc b','a.bid=b.id')
->join('dealer d','a.did=d.id')
->whereTime('a.create_time', 'between', [$data[0], $data[1]])
->select()
->toArray(); if (empty($req)){
$this->error('该时间段无数据 !');
} foreach ($req as $k=>$v){
switch ($req[$k]['type']) {
case 1:
$req[$k]['type'] = '定制';
break;
case 2:
$req[$k]['type'] = '定制团单';
break;
case 3:
$req[$k]['type'] = '样衣';
break;
case 4:
$req[$k]['type'] = '大货';
break;
case 5:
$req[$k]['type'] = '面料试样';
break;
case 6:
$req[$k]['type'] = '售后订单';
break;
} } $csv_data = '';
//标题
$csv_data .= "门店,集团,经销商,订单类型,成衣数量,成衣+功能数量,制衣数量,制衣+功能数量,后整理加工,日期\r\n"; $row = array();
foreach ($req as $k=>$val){
$row['store_name'] = $val['store_name'];
$row['bloc_name'] = $val['bloc_name'];
$row['dealer_name'] = $val['dealer_name'];
$row['type'] = $val['type'];
$row['garment'] = $val['garment'];
$row['garment_function'] = $val['garment_function'];
$row['clothing'] = $val['clothing'];
$row['clothing_function'] = $val['clothing_function'];
$row['functional_finishing'] = $val['functional_finishing'];
$row['create_time'] = date('Y-m-d',$val['create_time']);
$csv_data .= join(',', array_values($row))."\r\n";
} $file_name = date('YmdHis', time()).'detail.csv';
//导出数据
$url = save_csv($file_name, $csv_data); $this->success('成功!','',$url);
exit();

无论导出多大的数据,都不会出现乱码

人生得意须尽欢,莫使金樽空对月.
 
 
 
 
-----------------------------------------------------------------------------自己项目实战------------------------------------------------------------------------------------------------------------

注意:请求方法必须是get请求,不能用post请求

//用户提现审核导出
public function check_daochu()
{ $req = Db::name('cash_out')->alias('c')
->field('ca.card_name,ca.card_no,c.add_time,c.actual_money')
->join('xcf_user_wallet uw', 'uw.user_id=c.user_id', 'left')
->join('xcf_cash_account ca', "ca.id=c.account_id", "left")
->join('xcf_users u', "u.user_id=c.user_id", "left")
->where('c.role_id', 1)
->where('c.status', 1)
->order('c.add_time desc')
->select();
// ["card_name"] => string(6) "王毅"
// ["card_no"] => string(11) "15327953555"
// ["add_time"] => string(19) "2019-10-22 15:46:34"
// ["actual_money"] => string(4) "2.47"
$csv_data = '';
//标题
$csv_data .= "姓名,支付宝账号,实际到账金额,提现时间\r\n"; $row = array();
foreach ($req as $k=>$val){
$row['store_name'] = $val['card_name'];
$row['bloc_name'] = $val['card_no'];
$row['dealer_name'] = $val['actual_money'];
$row['create_time'] =$val['add_time'];
$csv_data .= join(',', array_values($row))."\r\n";
} $file_name = date('Y-m-d H-i-s', time()).' 用户提现.csv';
//导出数据
$url = $this->csvExportWithBOM($file_name, $csv_data);
exit();
//$this->success('成功!','',$url);
// return $url;
//return json(['ok' => 'success']); } /**@param $filename
* 输出csv文件的文件名
* @param $data
* 要写入csv文件的内容,即经过csvGenerator处理过的字符串;
*/
public function csvExportWithBOM($filename='export.csv', $data)
{
$f=fopen("php://memory",'w');
fwrite($f, chr(0xEF).chr(0xBB).chr(0xBF).$data);//加入BOM头
fseek($f,0);
header('Content-Type: application/csv');
// 告知浏览器想要输出的是一个文件
header('Content-Disposition: attachment; filename="'.$filename.'";');
// make php send the generated csv lines to the browser
fpassthru($f); }

PHP csv导出数据 (二)的更多相关文章

  1. PHP csv导出数据

    全部导出和时间导出 html代码,全程并不需要引用什么插件 <include file="public@header"/> <link href="__ ...

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

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

  3. PHP导出数据到CSV文件函数 csv_export()

    后台往往需要导出各种数据到 Excel文档中.通常我们是导出 .csv文件格式,PHP导出函数参考代码如下: /** * 导出数据到CSV文件 * * @param array $data 二维数组( ...

  4. PHP导出数据到CSV文件

    后台往往需要导出各种数据到 Excel文档中.通常我们是导出 .csv文件格式,PHP导出函数参考代码如下: /** * 导出数据到CSV文件 * * @param array $data 二维数组( ...

  5. CSV文件数据如何读取、导入、导出到新的CSV文件中以及CSV文件的创建

    CSV文件数据如何读取.导入.导出到新的CSV文件中以及CSV文件的创建 一.csv文件的创建 (1)新建一个文本文档: 打开新建文本文档,进行编辑. 注意:关键字与关键字之间用英文半角逗号隔开.第一 ...

  6. mysql导入导出.csv格式数据

    window下导入数据: LOAD DATA INFILE "C:\\1.csv" REPLACE INTO TABLE demo CHARACTER SET gb2312 FIE ...

  7. PHP导出数据到CSV文件函数/方法

    如果不清楚什么是CSV文件,可看如下文章介绍  CSV格式的是什么文件?CSV是什么的缩写? /** * 导出数据到CSV文件 * @param array $data 数据 * @param arr ...

  8. 导出数据之CSV

    平常开发中,常见的需求就是导出数据为Excel,CSV格式的表格.所以,在此记录一下导出CSV数据的小方法 $fileName = 'demo.csv'; $data = [ ['id'=>1, ...

  9. Bash中使用MySQL导入导出CSV格式数据[转]

    转自: http://codingstandards.iteye.com/blog/604541 MySQL中导出CSV格式数据的SQL语句样本如下:   select * from test_inf ...

随机推荐

  1. 编码总结一:Java默认字符集

    (一)JVM默认字符集——Charset.defaultCharset() 获取Java虚拟机默认字符集,该字符集默认跟操作系统字符集一致,也可以通过-Dfile.encoding="GBK ...

  2. IDEA Maven project: 'xxx/pom.xml' already exists in VFS

    Failed to create a Maven project: 'xxx/pom.xml' already exists in VFS idea创建项目后,发现项目有问题,删除后重新创建,提示错误 ...

  3. npm模块管理器

    npm模块管理器 地址: http://javascript.ruanyifeng.com/nodejs/npm.html#

  4. ex2、逻辑回归

    介绍: 在本练习中,您将实现逻辑回归,并将其应用于两个不同的数据集.在开始编程练习之前,我们强烈要求建议观看视频讲座并完成相关主题的问题.要开始练习,您需要下载起始代码并将其内容解压缩到要完成练习的目 ...

  5. 高性能和可扩展的React-Redux

    注意:文章很长,只想了解逻辑而不深入的,可以直接跳到总结部分. 初识 首先,从它暴露对外的API开始 ReactReduxContext /* 提供了 React.createContext(null ...

  6. 从ES6重新认识JavaScript设计模式: 装饰器模式

    1 什么是装饰器模式 向一个现有的对象添加新的功能,同时又不改变其结构的设计模式被称为装饰器模式(Decorator Pattern),它是作为现有的类的一个包装(Wrapper). 可以将装饰器理解 ...

  7. C# String的几种比较方法对比(Compare,CompareTo, CompareOrdinal、Equals)

    原文:http://blog.csdn.net/wushang923/article/details/7527499 注意点:切换方法的时候要注意返回值引起的变化!!! 1.Compare会通过传递进 ...

  8. nginx读取请求体

    请求体的读取一般发生在nginx的content handler中,一些nginx内置的模块,比如proxy模块,fastcgi模块,uwsgi模块等,这些模块的行为必须将客户端过来的请求体(如果有的 ...

  9. mysql的sql语句优化方法面试题总结

    mysql的sql语句优化方法面试题总结 不要写一些没有意义的查询,如需要生成一个空表结构: select col1,col2 into #t from t where 1=0 这类代码不会返回任何结 ...

  10. MongoDB与关系数据库的对比

    MongoDB与关系数据库的对比