经常会碰到需要从数据库中导出数据到Excel文件,用一些开源的类库,比如PHPExcel,确实比较容易实现,但对大量数据的支持很不好,很容易到达PHP内存使用上限。这里的方法是利用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);
}
|
分享到:
相关推荐
很好用的一段代码,PHP导出MySQL数据到excel文件。
PHP实现导出MySQL数据到excel ...本案例主要使用PHP 7中的PDO数据对象对MySQL数据库进行查询操作,实现数据库中数据的获取,同时使用header()函数来设置文件的输出类型,从而实现导出MySQL数据到excel的功能。
二、主要技术本案例主要使用PHP 7中的PDO数据对象对MySQL数据库进行查询操作,实现数据库中数据的获取,同时使用header()函数来设置文件的输出类型,
经常会碰到需要从数据库中导出数据到Excel文件,用一些开源的类库,比如PHPExcel,确实比较容易实现,但对大量数据的支持很不好,很容易到达PHP内存使用上限。
PHP导出数据到excel,直接链接到MYSQL数据库
本项目包含一个带样式的小实例,页面可以直接导入数据,导入的数据存入mysql数据库,也可以导出excel,导出excel文件位于downloads目录下, 需要将较长的样本数据从 Excel 文件导入到 MYSQL 数据库,此项目包含一个 ...
php 将数据库导出到excel表中,将cvs数据导入到mysql
源码,php实现把数据从数据库导出到excel中。
使用 Mysqli 驱动,支持PHP7.2,可以一键导出Mysql数据字典,数据库配置信息在第 88 行,修改未响应的IP地址、用户名、密码即可。 导出后打开 Excel 时会提示文件格式与文件扩展名指定的格式不一致。没有关系,确定...
使用PHP导出Mysql数据库数据字典工具,可用来作为项目数据库说明文档
PHP+Mysql导入或导出Excel文件
1,建立mysql数据库,把excel_demo.sql导入到你的数据库,采取utf-8编码; 2,导入时候请按照xls/demo.xls的格式导入,在linux系统下 xls目录要有下的权限; 3, 默认只有一条数据,导出至少有一条数据; 4,如果数据...
php导入导出Excel,导入Excel,导出Excel,mysql导入导出Excel
用php语句将mysql数据表转换为excel文件,附源代码
PHP导入和导出CSV EXCEL实例代码 写入读取mysql数据库
Excel表格的数据导入到mysql数据库中,我们使用PHP的一个开源项目PHP-ExcelReader可以轻松实现Excel的导入。另外将mysql数据导出为Excel与本站上篇文章中导出CSV一样,只是将逗号分割符换成制表符,并修改header信息...
使用方法phpExcel 其中: test.php导出array数据到excel test2.php导出mysql数据到excel,所使用的数据库:p2_lucky.sql
php+mysql源码 在线报名系统 统计导出xls评分 本系统服务器环境为php和mysql; 在线报名系统:用于统计报名者各类信息(姓名、邮箱、身份证号、联系地址、报名科目、备注等等); 支持新注册提交、个人信息查看和...