当前位置: 首页 > news >正文

PHP导出csv文件格式(最快捷的方式导出Excel文件)

php导出csv文件格式比起用PHPExcel插件导出excel文件速度快100倍!

以下是几种不同的PHP导出CSV文件的方法:

方法一(php://output方式用fputcsv函数格式化成csv数据):
------------------------------------------------------------------------------------
$data = array(
    array("Name", "Age", "Email"),
    array("John Doe", 25, "johndoe@example.com"),
    array("Jane Smith", 30, "janesmith@example.com"),
);
 
$filename = "data.csv";
 
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=' . $filename);
 
$output = fopen('php://output', 'w');
 
foreach ($data as $row) {
    fputcsv($output, $row);
}
 
fclose($output);
exit;


方法二(application/octet-stream读取文件数据流):
------------------------------------------------------------------------------------

$data = array(
    array("Name", "Age", "Email"),
    array("John Doe", 25, "johndoe@example.com"),
    array("Jane Smith", 30, "janesmith@example.com"),
);
 
$filename = "data.csv";
 
$output = fopen($filename, 'w');
 
foreach ($data as $row) {
    fputcsv($output, $row);
}
 
fclose($output);
 
// 下载文件
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . basename($filename));
header('Content-Length: ' . filesize($filename));
readfile($filename);
exit;


方法三(设置Header头自动下载文件):
------------------------------------------------------------------------------------

$data = array(
    array("Name", "Age", "Email"),
    array("John Doe", 25, "johndoe@example.com"),
    array("Jane Smith", 30, "janesmith@example.com"),
);
 
$filename = "data.csv";
 
$output = fopen($filename, 'w');
 
foreach ($data as $row) {
    $rowString = implode(',', $row) . "\n";
    fwrite($output, $rowString);
}
 
fclose($output);
 
// 下载文件
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . basename($filename));
header('Content-Length: ' . filesize($filename));
readfile($filename);
exit;


这些方法都是将数据数组写入到CSV文件中,并通过适当的头部设置强制浏览器下载生成的CSV文件。

在第一种方法中,我们使用了php://output来直接将CSV数据发送到浏览器。

第二种和第三种方法将CSV文件保存到服务器上,然后通过读取和输出文件内容来提供下载。

 本人喜欢第三种方法导出CSV,你们呢? 


 

http://www.lryc.cn/news/288309.html

相关文章:

  • vue3常用代码
  • 【技术】SpringBoot 接口怎么加密解密
  • SqlAlchemy使用教程(六) -- ORM 表间关系的定义与CRUD操作
  • 嵌入式培训机构四个月实训课程笔记(完整版)-Linux ARM平台编程第五天-kernel配置(物联技术666)
  • Java笔记(死锁、线程通信、单例模式)
  • DAY11_(简易版)VUEElement综合案例
  • 【Kafka】开发实战和Springboot集成kafka
  • 【C语言】(1)初识C语言
  • SpringCloudStream整合MQ(待完善)
  • 【Java 数据结构】包装类简单认识泛型
  • 第139期 做大还是做小-Oracle名称哪些事(20240125)
  • 驱动开发--多路复用-信号
  • LeetCode 2859. 计算 K 置位下标对应元素的和【位操作】1000
  • composer安装hyperf后,nginx配置hyperf
  • Flink对接Kafka的topic数据消费offset设置参数
  • TryHackMe-Umbrella
  • Excel导出警告:文件格式和拓展名不匹配
  • kafka集群和Filebeat+Kafka+ELK
  • golang map真有那么随机吗?——map遍历研究
  • 详细分析对比copliot和ChatGPT的差异
  • TENT:熵最小化的Fully Test-Time Adaption
  • 研发日记,Matlab/Simulink避坑指南(五)——CAN解包 DLC Bug
  • 机器人3D视觉引导半导体塑封上下料
  • (十二)Head first design patterns代理模式(c++)
  • C++从零开始的打怪升级之路(day21)
  • 《设计模式的艺术》笔记 - 观察者模式
  • Java如何对OSS存储引擎的Bucket进行创建【OSS学习】
  • ModuleNotFoundError: No module named ‘half_json‘
  • 深入探究 Android 内存泄漏检测原理及 LeakCanary 源码分析
  • Linux CentOS使用Docker搭建laravel项目环境(实践案例详细说明)