原生PHP实现导出csv格式Excel文件的方法示例【附源码下载】


Posted in PHP onMarch 07, 2019

本文实例讲述了原生PHP实现导出csv格式Excel文件的方法。分享给大家供大家参考,具体如下:

效果图

原生PHP实现导出csv格式Excel文件的方法示例【附源码下载】

源码分析

index.php

<?php
require_once "./Export.php";
//测试数据
$headerList= ['列名1','列名2','列名3'];
$data = [
  ['值1','值2','值3'],
  ['值11','值22','值33'],
  ['值111','值222','值333']
];
$fileName = "测试导出文件名";
$tmp = ['备份字段1','备份值1','','备份字段2','备份值2'];
$export = new Export();
$result = $export->exportToCsv($headerList,$data,$fileName,$tmp);

Export.php

<?php
class export{
  /**
   * params $headerList 头部列表信息(一维数组) 必传
   * params $data 导出的数据(二维数组)  必传
   * params $filename 文件名称转码 必传
   * params $tmp 备用信息(二维数组) 选传
   * PS:出现数字格式化情况,可添加看不见的符号,使其正常,如:"\t"
   **/
  public function exportToCsv($headerList = [] , $data = [] , $fileName = '' , $tmp = []){
    //文件名称转码
    $fileName = iconv('UTF-8', 'GBK', $fileName);
    //设置header头
    header('Content-Type: application/vnd.ms-excel');
    header('Content-Disposition: attachment;filename=' . $fileName . '.csv');
    header('Cache-Control: max-age=0');
    //打开PHP文件句柄,php://output,表示直接输出到浏览器
    $fp = fopen("php://output","a");
    //备用信息
    foreach ($tmp as $key => $value) {
      $tmp[$key] = iconv("UTF-8", 'GBK', $value);
    }
    //使用fputcsv将数据写入文件句柄
    fputcsv($fp, $tmp);
    //输出Excel列表名称信息
    foreach ($headerList as $key => $value) {
      $headerList[$key] = iconv('UTF-8', 'GBK', $value);//CSV的EXCEL支持BGK编码,一定要转换,否则乱码
    }
    //使用fputcsv将数据写入文件句柄
    fputcsv($fp, $headerList);
    //计数器
    $num = 0;
    //每隔$limit行,刷新一下输出buffer,不要太大亦不要太小
    $limit = 100000;
    //逐行去除数据,不浪费内存
    $count = count($data);
    for($i = 0 ; $i < $count ; $i++){
      $num++;
      //刷新一下输出buffer,防止由于数据过多造成问题
      if($limit == $num){
        ob_flush();
        flush();
        $num = 0;
      }
      $row = $data[$i];
      foreach ($row as $key => $value) {
        $row[$key] = iconv('UTF-8', 'GBK', $value);
      }
      fputcsv($fp, $row);
    }
  }
}

附:完整实例代码点击此处本站下载

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
利用 window_onload 实现select默认选择
Oct 09 PHP
字母顺序颠倒而单词顺序不变的php代码
Aug 08 PHP
多个PHP中文字符串截取函数
Nov 12 PHP
Codeigniter出现错误提示Error with CACHE directory的解决方案
Jun 12 PHP
destoon之一键登录设置
Jun 21 PHP
PHP启动windows应用程序、执行bat批处理、执行cmd命令的方法(exec、system函数详解)
Oct 20 PHP
php校验表单检测字段是否为空的方法
Mar 20 PHP
PHP中SERIALIZE和JSON的序列化与反序列化操作区别分析
Oct 11 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
Feb 23 PHP
PHP实现PDO操作mysql存储过程示例
Feb 13 PHP
phpstudy后门rce批量利用脚本的实现
Dec 12 PHP
PHP常量DIRECTORY_SEPARATOR原理及用法解析
Nov 10 PHP
PHP生成二维码与识别二维码的方法详解【附源码下载】
Mar 07 #PHP
PHP使用PDO操作sqlite数据库应用案例
Mar 07 #PHP
php使用fullcalendar日历插件详解
Mar 06 #PHP
PHP封装XML和JSON格式数据接口操作示例
Mar 06 #PHP
浅谈PHP封装CURL
Mar 06 #PHP
Yaf框架封装的MySQL数据库操作示例
Mar 06 #PHP
PHP实现的敏感词过滤方法示例
Mar 06 #PHP
You might like
php中DOMElement操作xml文档实例演示
2013/03/26 PHP
php数据访问之查询关键字
2016/05/09 PHP
php实现和c#一致的DES加密解密实例
2017/07/24 PHP
收集的网上用的ajax之chat.js文件
2007/04/08 Javascript
很可爱的输入框
2008/08/03 Javascript
Jquery submit()无法提交问题
2013/04/21 Javascript
原生js实现fadein 和 fadeout淡入淡出效果
2014/06/05 Javascript
原生JavaScript实现合并多个数组示例
2014/09/21 Javascript
jQuery对象的selector属性用法实例
2014/12/27 Javascript
jQuery实现带延迟的二级tab切换下拉列表效果
2015/09/01 Javascript
详解AngularJS实现表单验证
2015/12/10 Javascript
jQuery简单实现彩色云标签效果示例
2016/08/01 Javascript
JavaScript如何实现跨域请求
2016/08/05 Javascript
基于Phantomjs生成PDF的实现方法
2016/11/07 Javascript
BootStrap按钮标签及基本样式
2016/11/23 Javascript
详谈javascript精度问题与调整
2017/07/08 Javascript
JavaScript隐式类型转换代码实例
2020/05/29 Javascript
详解Python中内置的NotImplemented类型的用法
2015/03/31 Python
python使用reportlab实现图片转换成pdf的方法
2015/05/22 Python
Python编程之gui程序实现简单文件浏览器代码
2017/12/08 Python
python opencv检测目标颜色的实例讲解
2018/04/02 Python
树莓派使用USB摄像头和motion实现监控
2019/06/22 Python
python-sys.stdout作为默认函数参数的实现
2020/02/21 Python
解决Python paramiko 模块远程执行ssh 命令 nohup 不生效的问题
2020/07/14 Python
python爬虫使用scrapy注意事项
2020/11/23 Python
深入浅出CSS3 background-clip,background-origin和border-image教程
2011/01/27 HTML / CSS
使用css3实现的windows8开机加载动画
2014/12/09 HTML / CSS
Speedo速比涛中国官方网站:全球领先泳装运动品牌
2018/04/24 全球购物
试用期转正鉴定评语
2014/01/27 职场文书
安全标准化实施方案
2014/02/20 职场文书
学生会主席竞聘书
2014/03/31 职场文书
党的群众路线对照检查材料(个人)
2014/09/24 职场文书
乡镇干部个人对照检查材料思想汇报
2014/10/04 职场文书
廉政承诺书
2015/01/19 职场文书
2016应届毕业生实习评语
2015/12/01 职场文书
2016年优秀共青团员事迹材料
2016/02/25 职场文书