经常会碰到需要从数据库中导出数据到Excel文件,用一些开源的类库,比如PHPExcel,确实比较容易实现,但对大量数据的支持很不好,很容易到达PHP内存使用上限。这里的方法是利用fputcsv写CSV文件的方法,直接向浏览器输出Excel文件。
<?php
// 输出Excel文件头,可把user.csv换成你要的文件名
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="user.csv"');
header('Cache-Control: max-age=0');
include './Mysql.class.php';//mysql 用你自己的操作类就可以
$db = new mysql();
// 从数据库中获取数据,为了节省内存,不要把数据一次性读到内存,从句柄中一行一行读即可
$sql = 'select id,user_login from wp_users';
$stmt = $db->getAll($sql);
// 打开PHP文件句柄,php://output 表示直接输出到浏览器
$fp = fopen('php://output', 'a');
// 输出Excel列名信息
$head = array("id", "姓名");
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;
// 逐行取出数据,不浪费内存
$count = count($stmt);
for($t=0;$t<$count;$t++) {
$cnt ++;
if ($limit == $cnt) { //刷新一下输出buffer,防止由于数据过多造成问题
ob_flush();
flush();
$cnt = 0;
}
$row = $stmt[$t];
foreach ($row as $i => $v) {
$row[$i] = iconv('utf-8', 'gbk', $v);
}
fputcsv($fp, $row);
}
分享到:
相关推荐
解决多语言导出乱码,主要进行导出编码格式设定,试过很多次已经OK
总的来说,PHP的这些功能使得开发者能够方便地处理数据的导入和导出,同时与MySQL数据库的紧密集成使得数据管理更加高效。通过理解这些文件和标签,我们可以构建一个完整的系统,实现用户友好的数据交互。
在PHP开发中,有时我们需要将数据导出为用户可以下载的格式,如CSV或HTML,以便于数据分析或进一步处理。本教程将详细讲解如何在PHP中实现Excel数据导出,并支持CSV和HTML两种形式,已经封装好了相关功能,具体实现...
接下来,让我们看看如何使用PHPExcel导出XLS格式的文件: 1. **引入库**:在你的PHP文件中,引入PHPExcel的主要类: ```php require_once 'path/to/PHPExcel/Classes/PHPExcel.php'; ``` 2. **创建工作簿对象**...
本篇文章将详细探讨如何使用PHP和PHPExcel库来实现Excel(CSV、XLS)文件的导出。 1. **PHPExcel介绍** PHPExcel是一个强大的PHP类库,它支持多种格式,包括Excel的BIFF(.xls)和OfficeOpenXML(.xlsx)格式,...
总的来说,理解和掌握PDF、CSV、Excel这三种格式的特性及转换方法,对IT专业人士尤其是开发者来说是非常重要的技能。这不仅可以提升工作效率,还能增强与团队成员和客户之间的沟通能力。在处理和分享数据时,选择...
在PHP编程中,有时我们需要将数据导出为CSV(逗号分隔值)格式,以便于用户下载或进一步处理。CSV文件是一种常见的电子表格格式,兼容多种程序,如Microsoft Excel。本篇将介绍如何使用原生PHP实现导出CSV格式的...
软件介绍 (第47讲) PHP输出CSV和EXCEL两种简单的方法 1、定义 header()头部输出格式 header("Content-type:application/vnd.ms-excel"); header("Content-Disposition:filename=php100.xls"); 2、输出编码和...
在PHP开发中,有时我们需要处理数据的导出功能,特别是生成Excel文件,这对于数据分析、报告制作等场景非常有用。"php根据excel模板导出excel并合并单元格"这个主题涉及了如何利用PHP来读取Excel模板,填充数据,并...
这篇博文“php 读取或导出到Excel / CSV (附utf8、gbk 编码转换)”提供了一种方法,帮助开发者实现这个功能,同时考虑到了字符编码的转换问题。下面我们将详细探讨相关知识点。 首先,我们需要了解Excel文件格式...
php5.4环境下的 PHPExcel-1.8 使用,只要 Classes下的文件,并改名为 phpexcel 1,建立mysql数据库,把excel_demo.sql导入到你的...6, 支持导入/导出xls,xlsx,不支持csv; 7,如果文件上传之前已经损坏,程序会做判断。
这个库极大地简化了在 Laravel 应用中处理大量数据时的工作流程,使得数据导入导出更加高效和灵活。 ### 1. Excel 和 CSV 导入 LaravelExcel提供了多种方式将Excel和CSV文件的数据导入到应用中。你可以将文件内容...
TableExport的工作原理是解析HTML表格,然后将其转换为指定的文件格式,如XLS或CSV。使用该插件,只需在HTML表格上应用特定的类或属性,然后触发导出事件。 2. **Data URI Scheme** jQuery可以利用Data URI Scheme...
本案例针对这个问题提供了一种高效的CSV文件导出方案,适用于处理大规模数据集。CSV(Comma Separated Values)格式因其简洁和通用性,常被用于数据交换,尤其在大数据量的情况下。 首先,我们需要理解PHP中的CSV...
- `fgetcsv`函数:对于简单的CSV文件,可以直接使用PHP内置的`fgetcsv`函数进行导入和导出。 6. **实战应用** - 用户报表:允许用户下载包含他们数据的定制报表。 - 数据备份:定期将数据库中的数据导出为Excel...
为了将MySQL数据导出到Excel,我们通常会生成CSV(逗号分隔值)或XLS文件,这两种格式都可以被Excel识别。 步骤1:连接到MySQL数据库 使用PHP的`mysqli`或`PDO_MySQL`扩展可以连接到MySQL数据库。你需要提供数据库...
基本Excel 用于 PHP 5.3+ 的轻量级 Excel 读取/写入器此类可以读取和写入 CSV、XLS 和 XLSX。 添加了猜测它是哪种文件类型并相应地解析为数组的能力例子 - 阅读从一个文件 try {$ xmldata = \ BasicExcel \ Reader :...
impex利用PHP的文件处理能力读取和写入CSV、XLS和XLSX文件,以及处理数据映射和导入导出逻辑。PHP的灵活性和丰富的库使得impex能够高效地处理复杂的数据任务。 总结,impex是Drupal 8及更高版本中一个强大且灵活的...
总的来说,PHP导出Excel表格涉及到文件流操作、CSV格式化、以及第三方库的使用。了解这些知识点,你可以根据实际需求生成不同复杂度的Excel文件。无论是简单的CSV还是功能丰富的.XLSX,PHP都能满足。