原文链接

  1. https://segmentfault.com/a/1190000005366832
  1. /**
  2. * 导出excel(csv)
  3. * @data 导出数据
  4. * @headlist 第一行,列名
  5. * @fileName 输出Excel文件名
  6. */
  7. function csv_export($data = array(), $headlist = array(), $fileName) {
  8.  
  9. header('Content-Type: application/vnd.ms-excel');
  10. header('Content-Disposition: attachment;filename="'.$fileName.'.csv"');
  11. header('Cache-Control: max-age=0');
  12.  
  13. //打开PHP文件句柄,php://output 表示直接输出到浏览器
  14. $fp = fopen('php://output', 'a');
  15.  
  16. //输出Excel列名信息
  17. foreach ($headlist as $key => $value) {
  18. //CSV的Excel支持GBK编码,一定要转换,否则乱码
  19. $headlist[$key] = iconv('utf-8', 'gbk', $value);
  20. }
  21.  
  22. //将数据通过fputcsv写到文件句柄
  23. fputcsv($fp, $headlist);
  24.  
  25. //计数器
  26. $num = 0;
  27.  
  28. //每隔$limit行,刷新一下输出buffer,不要太大,也不要太小
  29. $limit = 100000;
  30.  
  31. //逐行取出数据,不浪费内存
  32. $count = count($data);
  33. for ($i = 0; $i < $count; $i++) {
  34.  
  35. $num++;
  36.  
  37. //刷新一下输出buffer,防止由于数据过多造成问题
  38. if ($limit == $num) {
  39. ob_flush();
  40. flush();
  41. $num = 0;
  42. }
  43.  
  44. $row = $data[$i];
  45. foreach ($row as $key => $value) {
  46. $row[$key] = iconv('utf-8', 'gbk', $value);
  47. }
  48.  
  49. fputcsv($fp, $row);
  50. }
  51. }

php 快速导出大量CSV文件的更多相关文章

  1. java导出生成csv文件

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

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

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

  3. R: 导入 csv 文件,导出到csv文件,;绘图后导出为图片、pdf等

    ################################################### 问题:导入 csv 文件 如何从csv文件中导入数据,?参数怎么设置?常用参数模板是啥? 解决方 ...

  4. 如何从sql server导出到csv文件

    如何从sql server导出到csv文件,具体代码如下: private static void WriteHeader(SqlDataReader reader, TextWriter outpu ...

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

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

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

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

  7. Java列表分页查询结果导出到CSV文件,导入CSV文件并解析

    import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.Fi ...

  8. 导出到CSV文件

    一.手工导出导出 1.winform void DataGridViewToExcel(DataGridView dataGridView1) { SaveFileDialog saveFileDia ...

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

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

随机推荐

  1. class JsonItemExporter(BaseItemExporter):

    class JsonItemExporter(BaseItemExporter):这个类的实现和几年前的实现有了点小变化,主要就是是否添加换行

  2. 跟我一起玩Win32开发(20):浏览文件夹

    最近忙于一些相当无聊的事情,还没忙完,不过,博客还是要写的,不然我头顶上会多了几块砖头. 在上一篇博文中,我们浏览了文件,今天我们也浏览一下目录,如何? 浏览目录我们同样有两个规矩,用托管类库的我就不 ...

  3. JMeter配置JDBC测试SQL Server/MySQL

    一.配置SQL Server 1.下载sql驱动,将sqljdbc4.jar放到JMeter安装目录/lib下. 2.启动JMeter,右键添加->配置文件->JDBC Connectio ...

  4. Codeforces Round #418 (Div. 2) A

    Description A few years ago, Hitagi encountered a giant crab, who stole the whole of her body weight ...

  5. Counting The Important Pairs CodeChef - TAPAIR

    https://vjudge.net/problem/CodeChef-TAPAIR 合法的删除方法: 第一种:桥边与其余任意边(1)桥*(桥-1)/2(两条桥边)(2)桥*(m-桥)(桥边+其他边) ...

  6. Jamie and Binary Sequence (changed after round) - CodeForces 916B

    http://codeforces.com/problemset/problem/916/B 好尬啊... #include<cstdio> #include<algorithm&g ...

  7. Chips CodeForces - 333B

    Chips CodeForces - 333B 题意:有一个n*n的棋盘,其中有m个格子被禁止.在游戏开始前要将一些芯片(?)放到四条边上(但不能是角上).游戏开始后,每次操作将每一个芯片移动到它四周 ...

  8. (022)[工具软件]图片浏览 JPEGView

    JPEGView是一款小巧绿色快速的图像浏览工具,并且支持全屏或窗口模式.主页地址: https://sourceforge.net/projects/jpegview/JPEGView软件小巧,但功 ...

  9. PDO相关函数

    (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0) PDO::__construct — 创建一个表示数据库连接的 PDO 实例 说明 PDO::__co ...

  10. webpack采坑十连跳

    4.css.js一同打包进html ---------------- https://www.cnblogs.com/amiezhang/p/9723565.html 依赖内联插件  HtmlWebp ...