php fputcsv函数将mysql数据库导出到excel文件

fputcsv() 函数将行格式化为 CSV 并写入一个打开的文件。

该函数返回写入字符串的长度。若出错,则返回 false。。

说明
fputcsv() 将一行(用 fields 数组传递)格式化为 CSV 格式并写入由 file 指定的文件。

 

// 输出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);
}

参数 描述
file 必需。规定要写入的打开文件。
fields 必需。规定要从中获得数据的数组。
seperator 可选。规定字段分隔符的字符。默认是逗号 (,)。
enclosure 可选。规定字段环绕符的字符。默认是双引号 "。
时间: 2024-09-25 13:27:34

php fputcsv函数将mysql数据库导出到excel文件的相关文章

link环境下如何用codefirst将数据库导出成excel文件?codefirst可以导出么?

问题描述 link环境下如何用codefirst将数据库导出成excel文件?codefirst可以导出么? link环境下如何用codefirst将数据库导出成excel文件?codefirst可以导出么? 解决方案 这个和codefirst没关系,直接用npoi导出就可以了.

用jxl从数据库导出的excel文件是导出到本地还是导出到服务器

问题描述 如题,代码如下:package test;import java.io.File;import java.io.FileOutputStream;import java.io.OutputStream; import java.io.IOException; import java.io.OutputStream; import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;imp

PHP实现把MySQL数据库导出为.sql文件实例(仿PHPMyadmin导出功能)_php实例

用php代码实现数据库备份可以使网站的管理变得非常便捷,我们可以直接进后台操作就能完成数据库的备份. 关键技术: 1. 首先要得到该数据库中有哪些表,所用函数 mysql_list_tables(),然后可以将获取的所有表名存到一个数组.2. show create table 表名 可以获取表结构.3. select * from 表名 取出所有记录,用循环拼接成 insert into... 语句. 实现代码: 复制代码 代码如下: <?php  header("Content-typ

PHP将mysql数据库导出为excel表

方法一,利用fputcsv  代码如下 复制代码 // 输出Excel文件头,可把user.csv换成你要的文件名 header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="user.csv"'); header('Cache-Control: max-age=0'); // 从数据库中获取数据,为了节省内存,不要把数据一次性读到内存,从句柄中一

MySQL数据库导出与导入及常见错误解决

MySQL数据库导出与导入的过程中将会发生众多不可预知的错误,本文整理了一些常见错误及相应的解决方法,遇到类似情况的朋友可以参考下,希望对大家有所帮助   MySQL命令行导出数据库: 1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录 如我输入的命令行:cd C:Program FilesMySQLMySQL Server 4.1bin (或者直接将windows的环境变量path中添加该目录) 2,导出数据库:mysqldump -u 用户名 -p 数据库名 >

Mysql数据库导出压缩并保存到指定位置备份脚本

  一个脚本用来把所有Mysql数据库导出压缩并保存到指定位置. 内容如下:  代码如下   #!/bin/bash ############################################ # # 这是一个MySQL数据库备份脚本 # 一次把所有数据库导出并gz压缩保存 # ccshaowei#gmail.com # 2013/05/08 # http://www.111cn.net# ############################################ #

jsp mysql excel-在jsp中使用jxl.jar包来将mysql搜索语句sql结果集导出到excel文件

问题描述 在jsp中使用jxl.jar包来将mysql搜索语句sql结果集导出到excel文件 整体构思是:连接数据库由DBManager.java,创建excel样式由Excel.java:最后在excel.jsp实现!但现在数据库数据并不能显示,求指教,我是java小白! Excel.java代码 package com; import java.io.*; import java.sql.*; import javax.sql.rowset.CachedRowSet; import com

PHP 实现从数据库导出到.csv文件方法

PHP 实现从数据库导出到.csv文件方法 实现代码: public function export(){ // 从数据库中获取数据,为了节省内存,不要把数据一次性读到内存,从句柄中一行一行读即可 // 输出Excel文件头,可把user.csv换成你要的文件名 header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="order.csv"');

php将数据库导出成excel的方法_php技巧

上传cvs并导入到数据库中,测试成功(部分代码不规范,如PHP_SELF那里要改写成$_SERVER["PHP_SELF"] ) PHP代码 复制代码 代码如下: <?php $fname = $_FILES['MyFile']['name']; $do = copy($_FILES['MyFile']['tmp_name'],$fname); if ($do) { echo"导入数据成功<br>"; } else { echo "&qu