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

news/2024/7/21 7:51:50 标签: 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.niftyadmin.cn/n/5347112.html

相关文章

[MQ]常用的mq产品图形管理web界面或客户端

一、MQ介绍 1.1 定义 MQ全称为Message Queue,消息队列是应用程序和应用程序之间的通信方法。 如果非要用一个定义来概括只能是抽象出来一些概念,概括为跨服务之间传递信息的软件。 1.2 MQ产品 较为成熟的MQ产品:IBMMQ(IBM We…

如何使用Docker安装Spug并实现远程访问本地运维管理界面

文章目录 前言1. Docker安装Spug2 . 本地访问测试3. Linux 安装cpolar4. 配置Spug公网访问地址5. 公网远程访问Spug管理界面6. 固定Spug公网地址 前言 Spug 面向中小型企业设计的轻量级无 Agent 的自动化运维平台,整合了主机管理、主机批量执行、主机在线终端、文件…

OpenCV图像的基本操作

图像的基本操作(Python) 素材图 P1:die.jpg P2:cool.jpg V:rabbit.mp4, 下载地址 读取展示-图像 import cv2img_1 cv2.imread(./die.jpg) # default cv2.IMREAD_COLOR print("die.jpg shape(imre…

u盘可以分区吗?怎么分区?分区后不显示出来怎么办

随着科技的不断发展,U盘已经成为人们传输和存储数据的重要设备之一。而针对U盘的分区问题,很多人对此还不太了解。比如,U盘可以分区吗?U盘怎么分区?U盘分区后不显示出来怎么办?下面我们一起来针对这些问题进…

深入理解Java类和对象的关系

如果要说清楚对象和类的关系,不可避免的要提到C,因为Java从时间线上来说,是C和C之后的一门语言,很多Java Coder 也是因为厌烦了C的一些特性,进而从事于Java开发的,所以以下内容会利用C的一部分知识来对比&a…

响应式Web开发项目教程(HTML5+CSS3+Bootstrap)第2版 例4-11 HTML5 表单验证

代码 <!doctype html> <html> <head> <meta charset"utf-8"> <title>HTML5 表单验证</title> </head><body> <form action"#" method"get" novalidate>请输入您的邮箱:<input type&q…

深入理解多线程编程和 JVM 内存模型

目录 一、什么是多线程编程 二、JVM介绍 三、 JVM 内存模型 一、什么是多线程编程 多线程编程是一种编程方式&#xff0c;它允许程序在同一时间内执行多个线程或任务。线程是程序执行的最小单位&#xff0c;多线程编程可以将任务拆分为多个线程&#xff0c;每个线程独立执行…

网闸网络ip端口映射原理分析

今天我们进行网闸网络ip端口映射原理分析&#xff1a;即两个不同网段的网址进行网络通信&#xff0c;需要路由器、网关等配置。举例更形象一些。 一、相同端口映射 1、正向访问 比如两个不同网段的网络ip:A:10.18.3.119 需要和B:10.199.177.10 进行通信&#xff0c;A要访问…