原生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
Dec 23 PHP
PHP define函数的使用说明
Aug 27 PHP
PHP5下$_SERVER变量不再受magic_quotes_gpc保护的弥补方法
Oct 31 PHP
PHP里的单例类写法实例
Jun 25 PHP
php实现中文转数字
Feb 18 PHP
smarty的section嵌套循环用法示例
May 28 PHP
thinkPHP订单数字提醒功能的实现方法
Dec 01 PHP
php实现查询功能(数据访问)
May 23 PHP
详解cookie验证的php应用的一种SSO解决办法
Oct 20 PHP
PHP parse_ini_file函数的应用与扩展操作示例
Jan 07 PHP
php的命名空间与自动加载实现方法
Aug 25 PHP
TP5框架使用QueryList采集框架爬小说操作示例
Mar 26 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目录与文件操作技巧总结(创建,删除,遍历,读写,修改等)
2016/09/11 PHP
Yii框架防止sql注入,xss攻击与csrf攻击的方法
2016/10/18 PHP
ThinkPHP框架整合微信支付之JSAPI模式图文详解
2019/04/09 PHP
JQuery验证工具类搜集整理
2013/01/16 Javascript
freemarker判断对象是否为空的方法
2015/08/13 Javascript
JavaScript通过使用onerror设置默认图像显示代替alt
2016/03/01 Javascript
js一维数组、多维数组和对象的混合使用方法
2016/04/03 Javascript
JS实时弹出新消息提示框并有提示音响起的实现代码
2016/04/20 Javascript
AngularJs Managing Service Dependencies详解
2016/09/02 Javascript
JS中常用的正则表达式
2016/09/29 Javascript
js 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示实例
2016/12/06 Javascript
微信小程序 Template详解及简单实例
2017/01/05 Javascript
BootStrap实现带关闭按钮功能
2017/02/15 Javascript
webpack实现热更新(实施同步刷新)
2017/07/28 Javascript
基于vue 开发中出现警告问题去除方法
2018/01/25 Javascript
JavaScript引用类型Function实例详解
2018/08/09 Javascript
js实现文件上传功能 后台使用MultipartFile
2018/09/08 Javascript
小程序如何构建骨架屏
2019/05/29 Javascript
浅谈Three.js截图并下载的大坑
2019/11/01 Javascript
Element InputNumber 计数器的实现示例
2020/08/03 Javascript
解决vue中axios设置超时(超过5分钟)没反应的问题
2020/09/04 Javascript
简单的Apache+FastCGI+Django配置指南
2015/07/22 Python
python 实现红包随机生成算法的简单实例
2017/01/04 Python
Python实现随机漫步功能
2018/07/09 Python
Python 十六进制整数与ASCii编码字符串相互转换方法
2018/07/09 Python
使用python批量读取word文档并整理关键信息到excel表格的实例
2018/11/07 Python
Python学习笔记之错误和异常及访问错误消息详解
2019/08/08 Python
Python3开发环境搭建详细教程
2020/06/18 Python
欧缇丽美国官网:Caudalie美国
2016/12/31 全球购物
一个精品风格的世界:Atterley
2019/05/01 全球购物
xml有哪些解析技术?区别是什么
2016/04/26 面试题
外科实习自我鉴定
2013/10/06 职场文书
信息科学与技术专业求职信范文
2014/02/20 职场文书
银行自荐信范文
2015/03/25 职场文书
刘胡兰观后感
2015/06/16 职场文书
教师培训学习心得体会
2016/01/21 职场文书