原生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 相关文章推荐
PHP中的日期及时间
Nov 23 PHP
php基础知识:函数基础知识
Dec 13 PHP
使用 eAccelerator加速PHP代码的目的
Mar 16 PHP
PHP伪造referer实例代码
Sep 20 PHP
支持中文字母数字、自定义字体php验证码代码
Feb 27 PHP
php实现可以设置中奖概率的抽奖程序代码分享
Jan 19 PHP
PHP图片裁剪函数(保持图像不变形)
May 04 PHP
PHP之sprintf函数用法详解
Nov 12 PHP
PHP实现将textarea的值根据回车换行拆分至数组
Jun 10 PHP
php实现xml转换数组的方法示例
Feb 03 PHP
PHP时间处理类操作示例
Sep 05 PHP
使用 PHP Masked Package 屏蔽敏感数据的实现方法
Oct 15 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地址引用(php地址引用的效率问题)
2012/03/23 PHP
jQuery 使用手册(六)
2009/09/23 Javascript
JS无限极树形菜单,json格式、数组格式通用示例
2013/07/30 Javascript
JavaScript通过正则表达式实现表单验证电话号码
2014/03/07 Javascript
JavaScript获取表格(table)当前行的值、删除行、增加行
2015/07/03 Javascript
利用HTML5的画布Canvas实现刮刮卡效果
2015/09/06 Javascript
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
2016/12/14 Javascript
webpack多页面开发实践
2017/12/18 Javascript
20行JS代码实现粘贴板复制功能
2018/02/06 Javascript
React为 Vue 引入容器组件和展示组件的教程详解
2018/05/03 Javascript
JS解析后台返回的JSON格式数据实例
2018/08/06 Javascript
Angular2 自定义表单验证器的实现方法
2018/12/14 Javascript
js中的面向对象之对象常见创建方法详解
2019/12/16 Javascript
JS中的继承操作实例总结
2020/06/06 Javascript
python 中文字符串的处理实现代码
2009/10/25 Python
numpy的文件存储.npy .npz 文件详解
2018/07/09 Python
python爬虫 urllib模块反爬虫机制UA详解
2019/08/20 Python
python实现通过flask和前端进行数据收发
2019/08/22 Python
浅谈pytorch、cuda、python的版本对齐问题
2020/01/15 Python
HTML5的hidden属性兼容老浏览器的方法
2014/04/23 HTML / CSS
一款html5 canvas实现的图片玻璃碎片特效
2014/09/11 HTML / CSS
深入浅析HTML5中的SVG
2015/11/27 HTML / CSS
法国娇韵诗官方旗舰店:Clarins是来自法国的天然护肤品牌
2018/06/30 全球购物
Kivari官网:在线购买波西米亚服装
2018/10/29 全球购物
英国户外装备商店:Ultimate Outdoors
2019/05/07 全球购物
Kathmandu新西兰官网:新西兰户外运动品牌
2019/07/27 全球购物
欧洲最大的高尔夫零售商:American Golf
2019/09/02 全球购物
党章学习思想汇报
2014/01/14 职场文书
数学系毕业生求职信
2014/05/29 职场文书
建筑工程催款函
2015/06/24 职场文书
2015年卫生院健康教育工作总结
2015/07/24 职场文书
字典算法实现及操作 --python(实用)
2021/03/31 Python
利用Matlab绘制各类特殊图形的实例代码
2021/07/16 Python
victoriaMetrics库布隆过滤器初始化及使用详解
2022/04/05 Golang
Python加密与解密模块hashlib与hmac
2022/06/05 Python
Django数据库(SQlite)基本入门使用教程
2022/07/07 Python