`
d2hellen
  • 浏览: 105668 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

高效的php 导出 xls,csv 的方法

    博客分类:
  • PHP
阅读更多
经常会碰到需要从数据库中导出数据到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);
}
分享到:
评论

相关推荐

    PHP导出 xls CSV

    解决多语言导出乱码,主要进行导出编码格式设定,试过很多次已经OK

    PHP导入和导出CSV EXCEL实例代码 mysql数据库

    总的来说,PHP的这些功能使得开发者能够方便地处理数据的导入和导出,同时与MySQL数据库的紧密集成使得数据管理更加高效。通过理解这些文件和标签,我们可以构建一个完整的系统,实现用户友好的数据交互。

    php excel导出支持csv和html两种形式 已封装

    在PHP开发中,有时我们需要将数据导出为用户可以下载的格式,如CSV或HTML,以便于数据分析或进一步处理。本教程将详细讲解如何在PHP中实现Excel数据导出,并支持CSV和HTML两种形式,已经封装好了相关功能,具体实现...

    php导出xls格式的class

    接下来,让我们看看如何使用PHPExcel导出XLS格式的文件: 1. **引入库**:在你的PHP文件中,引入PHPExcel的主要类: ```php require_once 'path/to/PHPExcel/Classes/PHPExcel.php'; ``` 2. **创建工作簿对象**...

    PHP导出Excel代码

    本篇文章将详细探讨如何使用PHP和PHPExcel库来实现Excel(CSV、XLS)文件的导出。 1. **PHPExcel介绍** PHPExcel是一个强大的PHP类库,它支持多种格式,包括Excel的BIFF(.xls)和OfficeOpenXML(.xlsx)格式,...

    导出pdf、csv、excel报表

    总的来说,理解和掌握PDF、CSV、Excel这三种格式的特性及转换方法,对IT专业人士尤其是开发者来说是非常重要的技能。这不仅可以提升工作效率,还能增强与团队成员和客户之间的沟通能力。在处理和分享数据时,选择...

    原生PHP实现导出csv格式Excel文件的方法示例【附源码下载】

    在PHP编程中,有时我们需要将数据导出为CSV(逗号分隔值)格式,以便于用户下载或进一步处理。CSV文件是一种常见的电子表格格式,兼容多种程序,如Microsoft Excel。本篇将介绍如何使用原生PHP实现导出CSV格式的...

    PHP100视频教程 47:PHP输出CSV和EXCEL两种简单的方法.rar

    软件介绍 (第47讲) PHP输出CSV和EXCEL两种简单的方法 1、定义 header()头部输出格式 header("Content-type:application/vnd.ms-excel"); header("Content-Disposition:filename=php100.xls"); 2、输出编码和...

    php根据excel模板导出excel并合并单元格

    在PHP开发中,有时我们需要处理数据的导出功能,特别是生成Excel文件,这对于数据分析、报告制作等场景非常有用。"php根据excel模板导出excel并合并单元格"这个主题涉及了如何利用PHP来读取Excel模板,填充数据,并...

    php 读取或导出到Excel / CSV (附utf8、gbk 编码转换)

    这篇博文“php 读取或导出到Excel / CSV (附utf8、gbk 编码转换)”提供了一种方法,帮助开发者实现这个功能,同时考虑到了字符编码的转换问题。下面我们将详细探讨相关知识点。 首先,我们需要了解Excel文件格式...

    php实现利用phpexcel导入导出数据至excel

    php5.4环境下的 PHPExcel-1.8 使用,只要 Classes下的文件,并改名为 phpexcel 1,建立mysql数据库,把excel_demo.sql导入到你的...6, 支持导入/导出xls,xlsx,不支持csv; 7,如果文件上传之前已经损坏,程序会做判断。

    LaravelExcel基于PHPExcel在Laravel应用中导入和导出Excel和CSV文件

    这个库极大地简化了在 Laravel 应用中处理大量数据时的工作流程,使得数据导入导出更加高效和灵活。 ### 1. Excel 和 CSV 导入 LaravelExcel提供了多种方式将Excel和CSV文件的数据导入到应用中。你可以将文件内容...

    jquery 导出excel方法

    TableExport的工作原理是解析HTML表格,然后将其转换为指定的文件格式,如XLS或CSV。使用该插件,只需在HTML表格上应用特定的类或属性,然后触发导出事件。 2. **Data URI Scheme** jQuery可以利用Data URI Scheme...

    百万量级php excel快速导出代码案例

    本案例针对这个问题提供了一种高效的CSV文件导出方案,适用于处理大规模数据集。CSV(Comma Separated Values)格式因其简洁和通用性,常被用于数据交换,尤其在大数据量的情况下。 首先,我们需要理解PHP中的CSV...

    php excel导出 导入

    - `fgetcsv`函数:对于简单的CSV文件,可以直接使用PHP内置的`fgetcsv`函数进行导入和导出。 6. **实战应用** - 用户报表:允许用户下载包含他们数据的定制报表。 - 数据备份:定期将数据库中的数据导出为Excel...

    php导出任意mysql数据库中的表去excel文件

    为了将MySQL数据导出到Excel,我们通常会生成CSV(逗号分隔值)或XLS文件,这两种格式都可以被Excel识别。 步骤1:连接到MySQL数据库 使用PHP的`mysqli`或`PDO_MySQL`扩展可以连接到MySQL数据库。你需要提供数据库...

    basic-excel:基本的Excel导入导出php类,可以导出csv,xls,xlsx

    基本Excel 用于 PHP 5.3+ 的轻量级 Excel 读取/写入器此类可以读取和写入 CSV、XLS 和 XLSX。 添加了猜测它是哪种文件类型并相应地解析为数组的能力例子 - 阅读从一个文件 try {$ xmldata = \ BasicExcel \ Reader :...

    impex:Drupal 8及更高版本的导入,导出(CSV,XLS,XLSX)数据

    impex利用PHP的文件处理能力读取和写入CSV、XLS和XLSX文件,以及处理数据映射和导入导出逻辑。PHP的灵活性和丰富的库使得impex能够高效地处理复杂的数据任务。 总结,impex是Drupal 8及更高版本中一个强大且灵活的...

    php文件自动导出excel表格

    总的来说,PHP导出Excel表格涉及到文件流操作、CSV格式化、以及第三方库的使用。了解这些知识点,你可以根据实际需求生成不同复杂度的Excel文件。无论是简单的CSV还是功能丰富的.XLSX,PHP都能满足。

Global site tag (gtag.js) - Google Analytics