PHP导出MySQL数据到Excel文件(fputcsv)

这里的方法是利用fputcsv写CSV文件的方法,直接向浏览器输出Excel文件。


代码如下:

// 输出Excel文件头,可把user.csv换成你要的文件名
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="user.csv"');
header('Cache-Control: max-age=0');

// 从数据库中获取数据,为了节省内存,不要把数据一次性读到内存,从句柄中一行一行读即可
$sql = 'select * from tbl where ……';
$stmt = $db->query($sql);

// 打开PHP文件句柄,php://output 表示直接输出到浏览器
$fp = fopen('php://output', 'a');

// 输出Excel列名信息
$head = array('姓名', '性别', '年龄', 'Email', '电话', '……');
foreach ($head as $i => $v) {
// CSV的Excel支持GBK编码,一定要转换,否则乱码
$head[$i] = iconv('utf-8', 'gbk', $v);
}

// 将数据通过fputcsv写到文件句柄
fputcsv($fp, $head);

// 计数器
$cnt = 0;
// 每隔$limit行,刷新一下输出buffer,不要太大,也不要太小
$limit = 100000;

// 逐行取出数据,不浪费内存
while ($row = $stmt->fetch(Zend_Db::FETCH_NUM)) {

$cnt ++;
if ($limit == $cnt) { //刷新一下输出buffer,防止由于数据过多造成问题
ob_flush();
flush();
$cnt = 0;
}

foreach ($row as $i => $v) {
$row[$i] = iconv('utf-8', 'gbk', $v);
}
fputcsv($fp, $row);
}

优点简单易用,非常节省内存,不依赖第三方类库。

(0)

相关推荐

  • 使用phpexcel类实现excel导入mysql数据库功能(实例代码)

    下载phpexcel文件,地址:phpexcel.codeplex.com/ 代码示例 require_once 'phpexcel/Classes/PHPExcel.php'; require_once 'phpexcel/Classes/PHPExcel/IOFactory.php'; require_once 'phpexcel/Classes/PHPExcel/Reader/Excel5.php'; $objReader = PHPExcel_IOFactory::createReade

  • 如何使用mysql完成excel中的数据生成

    Excel是数据分析中最常用的工具,本篇文章通过mysql与excel的功能对比介绍如何使用mysql完成excel中的数据生成,数据清洗,预处理,以及最常见的数据分类,数据筛选,分类汇总,以及数据透视等操作.本篇文章我们介绍第5,6,7部分内容,数据提取,数据筛选以及数据汇总及透视. 5,数据提取 第五部分是数据提取,也是数据分析中最常见的一个工作.下面介绍每一种函数的使用方法. 按列提取数据 #按列提取 SELECT city FROM data1; 按行提取数据 #按行提取 SELECT

  • Excel数据导入Mysql数据库的实现代码

    首先做一下说明,为什么我要用Navicat,第一个原因,因为它是个不错的Mysql GUI工具,更重要的是,它可以将一些外部数据源导入Mysql数据库中.因为我的数据源是excel数据,所以想借助Navicat将其导入Mysql. 第一次运行,首先创建连接,主机名填写:localhost,端口为3306,然后填写用户名密码,OK.顺利的话,大家就可以看到名为localhost的连接图标了.双击点开它,一般Mysql默认有两个数据库,分别为mysql与test. 不用管它们,右键localhost

  • Mysql中文乱码以及导出为sql语句和Excel问题解决方法[图文]

    一.导出数据. 先说明一下自己的环境:Mac OS X 10.8.3, MySQL Community Server 5.6.10, MySQL Workbench 5.2.47. 我想把本机数据库内的数据迁移到另一台机器上,于是使用Workbench中自带的import/export功能,其实就是调用mysqldump.不幸的是,出现了版本不一致的错误. 错误没治了,最终找到解决方案,可以指定mysql的mysqldump,路径为:/usr/local/mysql/bin/mysqldump,

  • PHP导入Excel到MySQL的方法

    研究了一下~方法不少~最后决定用Excel导入~在网上搜了很多这方面的资料,发现都是将excel文件另存为csv文件,然后从csv文件导入.这里介绍一个直接将excel文件导入mysql的例子.我花了一晚上的时间测试,无论导入简繁体都不会出现乱码,非常好用. PHP-ExcelReader,下载地址: http://sourceforge.net/projects/phpexcelreader 说明: PHP将EXCEL导入MYSQL的测试环境:MYSQL数据库采用utf8编码.导入EXCEL文

  • php 将excel导入mysql

    这里介绍一个直接将excel文件导入mysql的例子.我花了一晚上的时间测试,无论导入简繁体都不会出现乱码,非常好用.PHP-ExcelReader,下载地址: http://sourceforge.net/projects/phpexcelreader说明: 测试环境:MYSQL数据库采用utf8编码.导入EXCEL文档是xls格式,经过测试,xlsx 格式[excel 2007]也OK. 文中红色标注为需要注意的地方,请替换成你配置好的数据,如数据库配置等.运行http://localost

  • PHP导出MySQL数据到Excel文件(fputcsv)

    这里的方法是利用fputcsv写CSV文件的方法,直接向浏览器输出Excel文件. 复制代码 代码如下: // 输出Excel文件头,可把user.csv换成你要的文件名 header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="user.csv"'); header('Cache-Control: max-age=0'); // 从数据库中获取

  • Go结合Gin导出Mysql数据到Excel表格

    目录 1.实现目标 2.使用的库 3.项目目录 4.主要代码编写 4.1.excelize.go(主要工具类) 4.2.userService.go(接受请求) 4.2.测试结果 5.文档代码地址 1.实现目标 Golang 使用excelize 导出表格到浏览器下载或者保存到本地.后续导入的话也会写到这里 2.使用的库 go get github.com/xuri/excelize/v2 Git地址:https://github.com/qax-os/excelize文档地址:https://

  • C#导出GridView数据到Excel文件类实例

    本文实例讲述了C#导出GridView数据到Excel文件类.分享给大家供大家参考.具体如下: 这段C#代码自定义了一个封装类,用于将GridView数据导出到Excel文件 using System; using System.Web; using System.Web.UI; using System.IO; using System.Web.UI.WebControls; namespace DotNet.Utilities { public class ExportExcel { pro

  • php使用指定编码导出mysql数据到csv文件的方法

    本文实例讲述了php使用指定编码导出mysql数据到csv文件的方法.分享给大家供大家参考.具体实现方法如下: <?php /* * PHP code to export MySQL data to CSV * * Sends the result of a MySQL query as a CSV file for download * Easy to convert to UTF-8. */ /* * establish database connection */ $conn = mysq

  • SpringBoot 导出数据生成excel文件返回方式

    一.基于框架 1.IDE IntelliJ IDEA 2.软件环境 Spring boot mysql mybatis org.apache.poi 二.环境集成 1.创建spring boot项目工程 略过 2.maven引入poi <!--数据导出依赖 excel--> <!-- https://mvnrepository.com/artifact/org.apache.poi/poi --> <dependency> <groupId>org.apac

  • java导出大批量(百万以上)数据的excel文件

    本文实例为大家分享了java导出百万以上数据的excel文件,供大家参考,具体内容如下 1.传统的导出方式会消耗大量的内存,2003每个sheet页最多65536条数据,2007每个sheet页可以达到100万条数据以上,2007会在生成Workbook时清理数据,所以2007导出量更大; 2.可以导出多个excel文件到某个目录中,然后打包下载; 3.导出excel格式的xml文件,这种方式可以分批导出数据,适用于大批量数据的导出,以下简单介绍这种方式: 代码如下: package com.e

  • C#导出数据到Excel文件的方法

    本文实例讲述了C#导出数据到Excel文件的方法.分享给大家供大家参考.具体实现方法如下: /// <summary> /// 导出到Excel类,项目需引用Microsodt.Office.Interop.Excel, /// 类文件需using System.Data与System.Windows.Forms命名空间 /// </summary> public class CToExcel { /// <summary> /// 导出到Excel /// </

  • C#实现导出List数据到xml文件的方法【附demo源码下载】

    本文实例讲述了C#实现导出List数据到xml文件的方法.分享给大家供大家参考,具体如下: C#导出List数据到xml文件,这里主要用到的是: XmlSerializer 类 (System.Xml.Serialization) 将对象序列化到 XML 文档中和从 XML 文档中反序列化对象.XmlSerializer 使您得以控制如何将对象编码到 XML 中. 实体类代码: /// <summary> /// 用户实体类 /// /// 注意:类的访问修饰符必须是:public,否则会出现

  • winform导出dataviewgrid数据为excel的方法

    本文实例讲述了winform导出dataviewgrid数据为excel的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: #region 导出dataViewGrid视图中的数据为xls格式  private void btnExportList_Click(object sender, EventArgs e)  {     string fname = string.Empty; SaveFileDialog sfd = new SaveFileDialog(); sf

  • linux下导入、导出mysql数据库命令的实现方法

    一.导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径): 1.导出数据和表结构: mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql /usr/local/mysql/bin/ mysqldump -uroot -p abc > abc.sql 敲回车后会提示输入密码 2.只导出表结构 mysqldump -u用户名 -p密码 -d 数据库名 > 数据库名.sql /usr/local/mysql/bin/ mysqldump -uroo

随机推荐