composer 用起来是非常方便的 所以我是依赖composer来做的包管理

1.先安装composer 自行百度一下composer安装以及使用

2.用composer下载安装office包即可

3.不多废话 直接上代码

/**
* @param $data array 要下载的数据
* @param $title_arr array 表头
* @param $filename string 文件名称
*/
function export_csv($data,$title_arr,$file_name=''){
ini_set("max_execution_time", "3600"); $csv_data = ''; /** 标题 */
$nums = count($title_arr); for ($i = 0; $i < $nums - 1; ++$i) {
//$csv_data .= '"' . $title_arr[$i] . '",';
$csv_data .= $title_arr[$i] . ',';
}
if ($nums > 0) {
$csv_data .= $title_arr[$nums - 1] . "\r\n";
} foreach ($data as $k => $row) {
$_tmp_csv_data = '';
foreach ($row as $key => $r){
$row[$key] = str_replace("\"", "\"\"", $r); if ( $_tmp_csv_data == '' ) {
$_tmp_csv_data = $row[$key];
}
else {
$_tmp_csv_data .= ','. $row[$key];
} } $csv_data .= $_tmp_csv_data.$row[$nums - 1] . "\r\n";
unset($data[$k]);
} $csv_data = mb_convert_encoding($csv_data, "cp936", "UTF-8");
$file_name = empty($file_name) ? date('Y-m-d-H-i-s', time()) : $file_name;
// 解决IE浏览器输出中文名乱码的bug
if(preg_match( '/MSIE/i', $_SERVER['HTTP_USER_AGENT'] )){
$file_name = urlencode($file_name);
$file_name = iconv('UTF-8', 'GBK//IGNORE', $file_name);
}
$file_name = $file_name . '.csv';
header('Content-Type: application/download');
header("Content-type:text/csv;");
header("Content-Disposition:attachment;filename=" . $file_name);
header('Cache-Control:must-revalidate,post-check=0,pre-check=0');
header('Expires:0');
header('Pragma:public');
echo $csv_data;
exit();
}

PHP导出生成CSV文件的更多相关文章

  1. java导出生成csv文件

    首先我们需要对csv文件有基础的认识,csv文件类似excel,可以使用excel打开,但是csv文件的本质是逗号分隔的,对比如下图: txt中显示: 修改文件后缀为csv后显示如下: 在java中我 ...

  2. 原创 Datareader 导出为csv文件方法

    DataReader 是游标只读数据, 如果是大数据导出,用Datatable 将耗费巨大内存资源.因为Datatable 其实就是内存中的一个数据表 代码如下 /// <summary> ...

  3. Java生成CSV文件实例详解

    本文实例主要讲述了Java生成CSV文件的方法,具体实现步骤如下: 1.新建CSVUtils.java文件: package com.saicfc.pmpf.internal.manage.utils ...

  4. Java生成CSV文件

    1.新CSVUtils.java文件: package com.saicfc.pmpf.internal.manage.utils; import java.io.BufferedWriter; im ...

  5. POI以SAX方式解析Excel2007大文件(包含空单元格的处理) Java生成CSV文件实例详解

    http://blog.csdn.net/l081307114/article/details/46009015 http://www.cnblogs.com/dreammyle/p/5458280. ...

  6. oracle导出多CSV文件的靠谱的

    oracle导出多CSV文件的问题 ---------------------------------------------------------------------- 用ksh脚本从orac ...

  7. es实战之数据导出成csv文件

    从es将数据导出分两步: 查询大量数据 将数据生成文件并下载 本篇主要是将第二步,第一步在<es实战之查询大量数据>中已讲述. csv vs excel excel2003不能超过6553 ...

  8. 图像处理项目——生成csv文件提高读取效率

    利用pyhton脚本生成csv文件 *开发环境为windows PyCharm*使用的是pyhton脚本*生成人脸和人脸对应的标签的csv文件 一:主要步骤 1.载入对应路径2.提取每一张图片对应的位 ...

  9. 淘宝助理导出的csv文件使用的是什么编码,您猜?

    今天下午用Java读取从淘宝助理 V4.3 Beta1导出的csv文件,出现中文乱码情况. 一看就是文件编码引起的,不清楚淘宝助理导出的csv文件使用了什么编码,到百度搜索了一下,看到一些相关文章,但 ...

随机推荐

  1. TCP/IP、HTTP、Socke、UDP的区别

    一.TCP/IP.Http.Socket的区别 [http://jingyan.baidu.com/article/08b6a591e07ecc14a80922f1.html](http://jing ...

  2. as3 操作图片,获取,设置实际像素,扣除透明区域

    private var a:Loader = new Loader(); private function test():void { a.load(new URLRequest("asse ...

  3. es6编写reactjs事件处理函数绑定this三种方式

    第一种:官方推荐的: class LoginControl extends React.Component { constructor(props) { super(props); this.hand ...

  4. 在多个Activity中回传值(startActivityForResult())

    业务逻辑: MainActivity打开A,A打开B,B把值传回MainActivity.适用在多个Activity中回传值. 实例:微信中选择国家-->省份-->城市的实现 实现方式分析 ...

  5. 修改数据库用户名--CMD环境执行有效

    --CMD环境执行有效 --修改数据库用户名 select * from user$ where name='aa';   update user$ set name='bb' where name  ...

  6. ajax第三步

    ajaxSend()函数用于设置当AJAX请求即将被发送时执行的回调函数. 这是一个全局AJAX事件函数,用于为任何AJAX请求的ajaxSend事件绑定事件处理函数.当AJAX请求即将被发送时,将触 ...

  7. python str.format()

    python中的字符串格式函数str.format(): #使用str.format()函数 #使用'{}'占位符 print('I\'m {},{}'.format('Hongten','Welco ...

  8. 连接greenvpn 公司内网连接

    查看计算机路由表 Route print 跟踪路由表 Tracert ip or dnsname 本次需求,连接greenvpn之后,公司10.130.41.** 网段的机器无法使用.本机ip 10. ...

  9. 《Python自然语言处理》第二章 学习笔记

    import nltk from nltk.book import * nltk.corpus.gutenberg.fileids() emma = nltk.corpus.gutenberg.wor ...

  10. JavaScript 函数的定义-调用、注意事项

    函数定义 函数语句定义 function(a,b){ return a+b; } 表达式定义 var add = function(a,b){return a+b}; //函数表达式可以包含名称,这在 ...