// 将数据表导出成 csv 格式文件并下载
// @param string $data:要导出的数据
// @param array $del:不导出的字段名,指定的字段数据不被导出
// @param string $head:表头字段名,以逗号隔开,将在导出的 CSV 文件第一行显示
// @param string $save:下载时保存的文件名前缀,不含后缀,系统会在前缀后加上下载日期和文件扩展名,如定义:questions,保存时的文件名为:questions_20140108.csv
// @param string $coding:保存的字符编码,目标字符编码
// @return bool
public function data2csv($data = array(),$del = array(),$head = '',$save = '',$coding = 'gbk'){
  $tmpfile = SlightPHP::$appDir.'/tmp/data2excel_'.time().mt_rand().'.csv'; // 生成导出的CSV文件,临时保存路径,随机字串,防止被下载
  @setlocale(LC_ALL,'zh_CN');
  if($fp = @fopen($tmpfile,'w')){
    @fputcsv($fp,explode(',',iconv('utf-8',$coding,$head)));
    foreach ($data as $n) {
      foreach((array) $del as $d){ // 删除不导出的字段
        unset($n[$d]);
      }
      foreach($n as &$p){ // 编码转换
        $p = iconv('utf-8',$coding,$p);
      }
      @fputcsv($fp,$n);
    }
    @fclose($fp);
    ob_end_clean();
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    @header('Content-Length: '.filesize($tmpfile));
    header('Content-Disposition: attachment; filename='.$save.'_'.date('Y_m_d_H_i_s').'.csv');
    @readfile($tmpfile);
    @unlink($tmpfile);
    die(); // 必须结束
  } else {
    return false; // 写入文件失败
  }
}

php导出EXCEL方法的更多相关文章

  1. .Net MVC 导入导出Excel总结(三种导出Excel方法,一种导入Excel方法) 通过MVC控制器导出导入Excel文件(可用于java SSH架构)

    .Net MVC  导入导出Excel总结(三种导出Excel方法,一种导入Excel方法) [原文地址] 通过MVC控制器导出导入Excel文件(可用于java SSH架构)   public cl ...

  2. C# Datatable导出Excel方法

    C# 导出Excel方法  先引用下System.IO;System.data; 具体函数如下: public static bool ExportCSV(DataTable dt, string f ...

  3. asp.netDataTable导出excel方法(2)

    上一篇文章提到看到同事导出excel的新方法,感觉比上一篇简单得多,所以想贴上来,与大家分享. 在后台拼数据,都是用的htmltable标签的写法: string line = "text- ...

  4. .NET导入导出Excel方法总结

    最近,应项目的需求,需要实现Excel的导入导出功能,对于Web架构的Excel导入导出功能,比较传统的实现方式是: 1)导入Excel:将Excel文件上传到服务器的某一文件夹下,然后在服务端完成E ...

  5. 公共POI导出Excel方法--java

    最早开始的时候做过一些数据Excel导出的功能,但是到后期每一次导出都需要写一些差不多类似的代码,稍微研究了一下写了个公共的导出方法. 这里用的是POI,然后写成了一个公共类,传入设置好格式的数据,就 ...

  6. Web C# 导出Excel 方法总结

    方法1:微软推荐服务器需安装Excel型 依赖: 软件:Office Excel 2007-2013 引用:Microsoft Office 14.0 Object Library 1.1 数据准备 ...

  7. PHP导入导出Excel方法

    看到这篇文章的时候,很是惊讶原作者的耐心,虽然我们在平时用的也 有一些,但没有作者列出来的全,写excel的时候,我用过pear的库,也用过pack压包的头,同样那些利用smarty等作的简单替换xm ...

  8. c# 导入导出excel方法封装

    在很多项目中,都会使用到文件的上传下载等,为了方便,封装了一个帮助类,每次直接拿过来使用就可以了,下面是封装的类和使用方法. using Common.AttributeHelper; using N ...

  9. c#基础学习(0629)之导出Excel方法

    给予NPOI插件的方法,所以首先要下载NPOI插件:vs项目中点击“项目”==>“管理NoGet程序包”==>搜索“NPOI”然后下载==>using引入Controller代码: ...

  10. PHP导入导出Excel方法小结

    基本上导出的文件分为两种: 1:类Excel格式,这个其实不是传统意义上的Excel文件,只是因为Excel的兼容能力强,能够正确打开而已.修改这种文件后再保存,通常会提示你是否要转换成Excel文件 ...

随机推荐

  1. Runnable和Thread

    1.Runnable是一个接口,当实现该接口时需要复用run方法,在run方法中实现自己的逻辑. 2.Thread是一个类,它其实实现了Runnable方法,也就是说当你通过new 一个Thread得 ...

  2. 【shell 大系】Linux Shell常用技巧

    在最近的日常工作中由于经常会和Linux服务器打交道,如Oracle性能优化.我们数据采集服务器的资源利用率监控,以及Debug服务器代码并解决其效率和稳定性等问题.因此这段时间总结的有关Linux ...

  3. 全文检索学习历程目录结构(Lucene、ElasticSearch)

    1.目录 (1) Apache Lucene(全文检索引擎)—创建索引:http://www.cnblogs.com/hanyinglong/p/5387816.html (2) Apache Luc ...

  4. 用childNodes获取子元素 换行会产生一个子元素

    <div id='div1'> <div id='div2'> <div id='div3'></div> </div> <div c ...

  5. ADO.NET数据库参数化

    数据库参数化传递可以增强数据的安全性,但却会降低开发效率,为此创建了如下函数以解决这个问题: public static string PrepareParameter(string sql, out ...

  6. iOS 十六进制的颜色值转换为UIColor

    UIColor+Hex.h里面中 #import <UIKit/UIKit.h> @interface UIColor (Hex) + (UIColor *) colorWithHexSt ...

  7. GPU大百科全书索引(有助于理解openGL工作流程)

    GPU大百科全书索引 0.GPU大百科全书 前传 看图形与装修的关系 1.GPU大百科全书 第一章:美女 方程与几何 2.GPU大百科全书 第二章 凝固生命的光栅化 3.GPU大百科全书 第三章:像素 ...

  8. 关于Fragment你所需知道的一切!

    转载自刘明渊 的博客地址:http://blog.csdn.net/vanpersie_9987 Fragment 是 Android API 中的一个类,它代表Activity中的一部分界面:您可以 ...

  9. Android编码规范02

    同一项目开发过程中需要所有开发人员都有一种风格,做Android项目就要统一遵从Android代码风格: 要想了解Android的代码风格,最好的方式就是查看Android源代码: 下载Android ...

  10. 【Swift】iOS开发历险记(二)

    前言 这个系列主要是一些开发中遇到的坑记录分享,有助于初学者跨过这些坑,攒够 7 条发一篇. 声明  欢迎转载,但请保留文章原始出处:)  博客园:http://www.cnblogs.com 农民伯 ...