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

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

效果图

d296ab42ec1d46370b63e12fc019d9f7.png

源码分析

index.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

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程序设计有所帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/507181.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python 颜色_如何使用python中matplotlib库分析图像颜色

用代码分析图像可能很困难。你如何使代码“理解”图像的上下文?通常&#xff0c;使用AI分析图像的第一步 是找到主要颜色。在如何使用python中matplotlib库分析图像颜色中&#xff0c;我们将使用matplotlib的 image类在图像中找到主色 。查找主导色也是你可以使用第三方API进行…

cnn 准确率无法提升_清华类脑芯片再登Nature: 全球首款基于忆阻器的CNN存算一体芯片...

传统计算架构中计算与存储在不同电路单元中完成&#xff0c;造成大量数据搬运功耗增加和额外延迟&#xff0c;被认为是冯诺依曼计算架构的核心瓶颈。人类的大脑却并非如此&#xff0c;而是直接在记忆体里计算。被认为具有「存算一体」潜力的忆阻器&#xff0c;因而成为类脑计算…

oracle 几个字段中某个字段大于0其他字段不再进行统计?_如何深入理解MySQL 8.0直方图?...

MySQL8.0 新功能直方图&#xff0c;继承于Oracle &#xff0c;MairaDB的实现方式。 那下面从mysql角度认识下&#xff0c;直方图是什么。先看下官方直方图的实现方式。 从上图上可以看到原来是ANALYZE命令。先了解一下MySQL里 ANALYZE命令到底有什么用。ANALYZE在MySQL里提交一…

godaddy修改php版本,Godaddy美国主机Plesk面板修改PHP版本教程

由于不同的需求&#xff0c;我们站长朋友们建站所用的网站程序也不尽相同&#xff0c;有PHP、ASP和ASP.NET等。Godaddy美国主机作为全球最大域名主机商&#xff0c;当之无愧成为站长使用最多的主机。不少朋友应该都知道不同的网站程序对于PHP和ASP的版本要求又不一样&#xff0…

mysql数据结构_mysql的底层数据结构

一&#xff0e;数据结构1. 二叉树特点&#xff1a;左侧子节点比父节点小&#xff0c;右侧子节点比父节点大(对于同一个父节点下的两个子节点)缺点&#xff1a;对于一直递增得数据不能存在该数据结构中&#xff0c;会变成链表&#xff0c;不能降低树的高度图 1-1图1-22. 红黑树特…

winform判断线程有没有完成_并发编程系列1:线程池的架构实现、大小配置、及四种线程池使用...

△ 公众号回复关键词“架构” 即可领取《1500BAT架构及面试专题合集》本篇为线程池系列文章之一&#xff0c;不经常使用线程池的童鞋&#xff0c;还有对几种线程的使用不甚了解的童鞋&#xff0c;可以读一下此文&#xff0c;并关注后续线程池相关文章连载。 本篇内容大纲&#…

python枚举是什么意思,什么是枚举python

枚举类型可以看作是一种标签或是一系列常量的集合&#xff0c;通常用于表示某些特定的有限集合&#xff0c;例如星期、月份、状态等。Python 的原生类型(Built-in types)里并没有专门的枚举类型&#xff0c;但是我们可以通过很多方法来实现它&#xff0c;例如字典、类等&#x…

拖拽批量上传图片如何保证 顺序_图片压缩神器和图片分割工具,美工设计和运营终于得救了...

想要快速互联网干货技巧&#xff1f;请&#xff08;置顶&#xff09;星标我们好不容易写好文案&#xff0c;设计好长图海报&#xff0c;上传到微信公众号&#xff0c;竟然提示上传图片体积不得超过5M,怎么办&#xff1f;怎么办&#xff1f;不得已&#xff0c;只好又返回Ps里降低…

php将word转txt,PHP如何将将word文件转为pdf

PHP将word文件转为pdf的方法&#xff1a;首先修改【php.ini】&#xff0c;并重启环境&#xff1b;然后安装微软office套件&#xff1b;最后配置office组件服务即可。PHP将word文件转为pdf的方法&#xff1a;1、修改php.ini添加&#xff1a;extensionphp_com_dotnet.dll去除注释…

redis一般缓存什么样数据_SpringBoot+Redis轻松实现数据缓存

1.为什么需要缓存为什么需要缓存&#xff0c;我相信搞开发的都能回答出来&#xff0c;无非就是为了降低数据库压力&#xff0c;节约资源&#xff0c;提升系统性能。而事实上也确实是&#xff0c;归根结底就是降压&#xff0c;高并发&#xff0c;高性能。不过&#xff0c;大厂里…

红旗linux安装oracle,Redflag Linux安装Oracle 10gR2 RAC记事

Redflag Linux安装Oracle 10gR2 RAC记事Kamus遇到过&#xff1a;SQL> startup nomountORA-27102: out of memoryLinux-x86_64 Error: 28: No space LEFT ON device这和内核参数 shmall 有关&#xff0c;修改设置 kernel.shmall 16475728 。后来离开没多久&#xff0c;客户打…

springboot开启debug日志_SpringBoot 如何优雅的打印日志?

一、打印日志注意事项1、使用 Slf4j 注解这个代码相信大家都很熟悉&#xff0c;你是否曾经看到或者自己因 copy 而 没有改变“当前类名”&#xff1f;如果你们项目用到 lombok &#xff0c;可以在类上使用 Slf4j 注解&#xff0c;省去手动写这行代码。2、不建议使用的输出为什么…

windows 映射文件会释放内存吗_Windows系统共享内存管理

一 进程逻辑空间 物理空间​如上图所示&#xff0c;每个进程都有自己的逻辑空间&#xff0c;这些逻辑空间&#xff0c;会被映射到具体的物理空间中。每个进程的逻辑空间都是彼此隔离&#xff0c;相互独立不受干扰的。但是他们都会被映射到同一个物理空间去&#xff0c;当其所映…

linux 文件的组织,Linux文件组织和目录结构

资料&#xff1a;https://www.shiyanlou.com/courses/running1 Linux目录结构说明可以使用tree来查看目录结构sudo apt-get install tree 安装treetree / 查看根目录的结构将目录定义为四种交互作使用的形态&#xff1a;2 路径. 表示当前目录.. 表示上一级目录 - 表示上一次所在…

jeecg 导出的excel不能使用公式_微软:Excel公式是世界上使用最广泛的编程语言...

喜欢就关注我们吧&#xff01;文|一君微软近日推出了一项 Excel 公式构建的新功能 LAMBDA&#xff0c;正则测试阶段。LAMBDA 允许使用 Excel 自身的公式语言自定义功能&#xff0c;而过去&#xff0c;Excel 中需要通过 JS 等语言编写自定义函数。同时&#xff0c;LAMBDA 还可以…

voip 音频采集时间_蓝牙音频续航监测系统展会现场演示

|点击【美格信】关注☝大家好&#xff0c;我是美格信公众号主编&#xff1a;小M&#xff0c;今天的2020(秋季)亚洲蓝牙耳机展上&#xff0c;我们美格信现场展示了发布的新品-MAGNUM麦金纳蓝牙音频续航监测系统。不过有很多小伙伴因为时间问题&#xff0c;没机会来现场参观&…

linux 运行scrapy,python 文件 运行 scrapy

写了一个scrapy&#xff0c;程序可以跑&#xff0c;没有任何问题。爬下30个网站的body存入json文件&#xff0c;并且保存为test.json如果test.json存在就保存到一个新建的test1.json新建了一个python文件叫check.py&#xff0c;对比两个文件的hash值&#xff0c;如果有不一样&a…

大整数减法c语言_3.2 C语言运算符和表达式

01基本的算术运算符1、正号运算符2、-负号运算符3、*乘法运算符4、/除法运算符5、%求余运算符6、加法运算符7、-减法运算符读者应该特别注意和-在不同情况下的含义02自增、自减运算符1、i&#xff0c;--i在使用i之前&#xff0c;先是i的值加&#xff08;减&#xff09;12、i&am…

如何查看linux 是否安装软件包,linux 查看软件包是否安装 linux查看软件包

Linux下怎样检查,如何查看某软件包是否已经安装1、rpm包安装的&#xff0c;可以用rpm -qa看到&#xff0c;如果要查找某软件包是否安装&#xff0c;用 rpm -qa | grep “软件或者包的名字”。rpm -qa | grep ruby2、以deb包安装的&#xff0c;可以用dpkg -l能看到。如果是查找指…

trueOS能装linux软件,TrueOS 是什么

TrueOS是一套基于FreeBSD-CURRENT、桌面取向的类Unix操作系统。主要目的是创建一个易于安装软件的图形用户界面&#xff0c;借由提供KDE SC、Lumina、MATE、Xfce等桌面环境使其容易上手。TrueOS 是一套基于 FreeBSD-CURRENT、桌面取向的类 Unix操作系统。主要目的是创建一个易于…