全部导出和时间导出

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();
/**
* @param $file_name //请求参数 文件名
* @param $content //请求参数 根据内容
* @return url
* 保存文件导出csv
*/
function save_csv($file_name,$content){
$content = mb_convert_encoding($content, "cp936", "UTF-8");
//这里的CSV即你项目的根目录下新建一个CSV文件夹
//我们给每个用户动态的创建一个文件夹
$file_path = 'CSV/'.date('Ymd', time());
//判断该用户文件夹是否已经有这个文件夹
if(!file_exists("./upload/".$file_path)) {
mkdir("./upload/".$file_path, 0777, true);
}
$path = ('./upload/'.$file_path.'/'.$file_name);
$fp = fopen($path,'a');
// 写入并关闭资源
fwrite($fp, $content);
fclose($fp);
$path = cmf_get_root() . '/upload/' .$file_path.'/'.$file_name;
return $path;
}
/**
* 获取网站根目录
* @return string 网站根目录
*/
function cmf_get_root()
{
$request = Request::instance();
$root = $request->root();
$root = str_replace('/index.php', '', $root);
if (defined('APP_NAMESPACE') && APP_NAMESPACE == 'api') {
$root = preg_replace('/\/api$/', '', $root);
$root = rtrim($root, '/');
} return $root;
}

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

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

  1. PHP csv导出数据 (二)

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

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

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

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

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

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

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

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

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

  6. PHP导出数据到CSV文件

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

  7. 导出数据之CSV

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

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

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

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

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

随机推荐

  1. [转载]3.15 UiPath图片操作保存图片的介绍和使用

    一.保存图像 (Save Image)的介绍 可以将图像保存到磁盘的一种活动 二.保存图像 (Save Image)在UiPath中的使用 1.打开设计器,在设计库中新建一个Sequence,为序列命 ...

  2. 推荐一款移动端天气App即刻天气

    推荐一款移动端天气App即刻天气 一 应用描述 即刻天气预报是一个提供全国各城市15日天气预报和空气质量的APP,包含全国3000个城市天气预报,3万个乡镇天气,15日及48小时空气质量预报,是万千用 ...

  3. Nacos集成Spring Cloud Gateway 基础使用

    项目结构 项目 端口 描述 nacos-provider 8000 服务 nacos-getway 8001 网关 nacos-provider项目依赖 <dependencies> &l ...

  4. Spring中抽象类中使用EmbeddedValueResolverAware和@PostConstruct获取配置文件中的参数值

    我的需求: 我有一个 abstract class 中包含了很多子类中需要用到的公共方法和变量,我想在抽象类中 使用@Value获取*.properties中的值.但是@Value必须要在Spring ...

  5. mysql 基本操作 三

    1.alter 创建测试表 MariaDB [jason]> create table testalter_tbl(i )); Query OK, rows affected (0.08 sec ...

  6. Java8 新特性 Steam() 中间有状态操作

    中间有状态操作 Java8 新特性 Stream 练习实例   中间操作,就是把数据处理成自己想要的类型,并且有状态操作,是在所有的数据基础上进行操作的.比如dictinct(去重),sorted(排 ...

  7. Vue.js 源码分析(十二) 基础篇 组件详解

    组件是可复用的Vue实例,一个组件本质上是一个拥有预定义选项的一个Vue实例,组件和组件之间通过一些属性进行联系. 组件有两种注册方式,分别是全局注册和局部注册,前者通过Vue.component() ...

  8. ant-design-pro引用css

    ant-design-pro中默认只能引用less文件,引用了css文件也是无效的.所以需要在配置文件config.js中找到  cssLoaderOptions,在 getLocalIdent中加入 ...

  9. 基于 HTML5 换热站可视化应用

    换热站是整个热网系统中最核心的环节,它将一侧蒸汽或高温水通过热交换器换成可以直接进入用户末端的采暖热水.换热站控制系统是集中供热监控系统的核心部分,换热站控制系统既可独立工作,也可以接受调度中心的监督 ...

  10. python高级编程——网络编程(二)

    UDP 概念和介绍 UDP --- 用户数据报协议,是一个无连接的简单的面向数据报的运输层协议. UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并 不能保证它们能到达目的地. U ...