利用PHPExcel导出excel文件的方法详解

利用PHPExcel导出excel文件的方法详解

在使用PHP开发网站应用时,有时候需要将数据导出成Excel文件供用户下载,这时PHPExcel就是一个不错的选择。本文将详细讲解如何使用PHPExcel导出Excel文件。

前提要求

使用PHPExcel需要满足以下前提要求:

  1. PHP版本5.2.0或以上
  2. PHP扩展php_zip和php_xml
  3. PHP扩展php_gd2(如果需要生成图表或者使用图片等)

安装PHPExcel

PHPExcel的安装可以选择直接下载压缩包解压到项目目录中,或者使用Composer进行安装。使用Composer进行安装的步骤如下:

  1. 在项目目录下执行 composer require phpoffice/phpexcel 命令,将PHPExcel添加到项目依赖中并下载到vendor目录下。
  2. 在PHP文件中引入自动加载文件:require_once 'vendor/autoload.php';

导出Excel文件

使用PHPExcel导出Excel文件的步骤如下:

  1. 创建PHPExcel对象
  2. 配置PHPExcel对象
  3. 添加表头数据
  4. 添加每一行数据
  5. 设置单元格格式
  6. 输出Excel文件

一下将会详细讲解每一步骤所需要的操作。

创建PHPExcel对象

在PHPExcel中,我们需要先创建一个PHPExcel对象,使用下面的代码即可完成:

$excel = new \PHPExcel();

配置PHPExcel对象

在PHPExcel对象被创建之后,需要进行一些配置,例如设置文件属性,设置当前活动Sheet等。

// 设置文件属性
$excel->getProperties()
    ->setCreator("Your Name")
    ->setLastModifiedBy("Your Name")
    ->setTitle("Demo Excel")
    ->setSubject("Demo Export")
    ->setDescription("Demo");

// 设置当前活动Sheet
$excel->setActiveSheetIndex(0);

添加表头数据

在PHPExcel中,表头数据通常位于第一行,需要在PHPExcel对象中添加。添加表头数据时,可以使用setCellValue()方法,该方法接收两个参数,第一个参数为单元格的标识,第二个参数为单元格的值。

// 添加表头数据
$excel->getActiveSheet()
    ->setCellValue('A1', '姓名')
    ->setCellValue('B1', '年龄')
    ->setCellValue('C1', '性别');

添加每一行数据

在添加完表头数据后,接下来需要添加每一行的数据。下面的示例代码展示了如何添加两条数据:

// 添加第一条数据
$excel->getActiveSheet()
    ->setCellValue('A2', '小明')
    ->setCellValue('B2', '12')
    ->setCellValue('C2', '男');

// 添加第二条数据
$excel->getActiveSheet()
    ->setCellValue('A3', '小红')
    ->setCellValue('B3', '11')
    ->setCellValue('C3', '女');

需要注意的是,如果添加的数据过多,可以采用循环的方式添加。

设置单元格格式

在PHPExcel中,可以使用setAutoSize()方法设置单元格的自动宽度。该方法接收一个参数,为设置自动宽度的单元格标识。

// 设置表头数据自动宽度
$excel->getActiveSheet()
    ->getColumnDimension('A')
    ->setAutoSize(true);
$excel->getActiveSheet()
    ->getColumnDimension('B')
    ->setAutoSize(true);
$excel->getActiveSheet()
    ->getColumnDimension('C')
    ->setAutoSize(true);

输出Excel文件

在完成PHPExcel对象的配置后,就可以将其输出为一个Excel文件了。输出方式有多种,例如直接输出到浏览器,保存到服务器等。

直接输出到浏览器

将Excel文件输出到浏览器的方式如下:

// 直接输出Excel文件给浏览器下载
header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment;filename=demo.xlsx");
header("Cache-Control: max-age=0");

$writer = \PHPExcel_IOFactory::createWriter($excel, 'Excel2007');
$writer->save('php://output');

保存到服务器

将Excel文件保存到服务器的方式如下:

// 将Excel文件保存到服务器
$writer = \PHPExcel_IOFactory::createWriter($excel, 'Excel2007');
$writer->save('demo.xlsx');

示例说明

下面的示例代码展示了如何使用PHPExcel导出一个包含两条数据的Excel文件:

// 引入自动加载文件
require_once 'vendor/autoload.php';

// 创建PHPExcel对象
$excel = new \PHPExcel();

// 设置文件属性
$excel->getProperties()
    ->setCreator("Your Name")
    ->setLastModifiedBy("Your Name")
    ->setTitle("Demo Excel")
    ->setSubject("Demo Export")
    ->setDescription("Demo");

// 设置当前活动Sheet
$excel->setActiveSheetIndex(0);

// 添加表头数据
$excel->getActiveSheet()
    ->setCellValue('A1', '姓名')
    ->setCellValue('B1', '年龄')
    ->setCellValue('C1', '性别');

// 添加数据
$excel->getActiveSheet()
    ->setCellValue('A2', '小明')
    ->setCellValue('B2', '12')
    ->setCellValue('C2', '男');
$excel->getActiveSheet()
    ->setCellValue('A3', '小红')
    ->setCellValue('B3', '11')
    ->setCellValue('C3', '女');

// 设置表头数据自动宽度
$excel->getActiveSheet()
    ->getColumnDimension('A')
    ->setAutoSize(true);
$excel->getActiveSheet()
    ->getColumnDimension('B')
    ->setAutoSize(true);
$excel->getActiveSheet()
    ->getColumnDimension('C')
    ->setAutoSize(true);

// 直接输出Excel文件给浏览器下载
header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment;filename=demo.xlsx");
header("Cache-Control: max-age=0");

$writer = \PHPExcel_IOFactory::createWriter($excel, 'Excel2007');
$writer->save('php://output');

以上代码将输出一个包含两条数据的Excel文件,并直接下载到客户端。

另外,也可以使用保存到服务器的方式存储文件,如:

// 将Excel文件保存到服务器
$writer = \PHPExcel_IOFactory::createWriter($excel, 'Excel2007');
$writer->save('demo.xlsx');

保存的文件名为demo.xlsx,可以通过浏览器访问下载。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:利用PHPExcel导出excel文件的方法详解 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • PHP判断文件是否存在、是否可读、目录是否存在的代码

    以下是 PHP 判断文件和目录存在以及可读性的攻略。 判断文件是否存在 要判断一个文件是否存在,可以使用 file_exists() 函数。该函数接收一个文件路径参数,如果这个路径存在则返回 true,否则返回 false。 if (file_exists(‘/path/to/file.txt’)) { echo ‘文件存在’; } else { echo …

    PHP 2023年5月26日
    00
  • PHP中__set()实例用法和基础讲解

    PHP中__set()实例用法和基础讲解 1. __set() 方法 __set() 方法用于设置私有属性的值,当使用未定义或不可见的属性进行赋值时,会自动调用该方法。 public void __set ( string $name , mixed $value ) 其中,$name 表示属性名,$value 表示属性值。 2. __set() 方法的实例…

    PHP 2023年5月25日
    00
  • PHP常用的文件操作函数总结

    下面我来详细讲解一下“PHP常用的文件操作函数总结”的攻略。 目录 文件操作函数 文件夹操作函数 文件读写函数 示例说明 文件操作函数 在 PHP 中,有三个常用的文件操作函数,分别是 fopen()、fclose()、fwrite()。其中,fopen() 用于打开一个文件,fclose() 用于关闭打开的文件,fwrite() 用于向文件中写入数据。 使…

    PHP 2023年5月26日
    00
  • PHP危险函数禁用深入详解

    PHP危险函数禁用深入详解 在PHP语言中,有一些函数可能会造成安全风险,比如可能会导致代码注入、文件操作等问题。为了保障网站的安全,我们需要禁用这些危险函数。在本篇文章中,我们将深入讲解PHP危险函数的禁用方法及实例演示。 禁用方法 一般情况下,我们可以在php.ini文件中设置disable_functions来禁用危险函数。示例如下: disable_…

    PHP 2023年5月24日
    00
  • 基于php权限分配的实现代码

    下面我将为您详细讲解“基于PHP权限分配的实现代码”的完整攻略。 简介 在网站开发中,通常需要将系统面向各种角色提供不同的功能和操作权限。本文将介绍如何基于PHP实现基本的权限访问控制,以及如何实现简单的角色权限分配。 步骤 构建数据库 首先,我们需要构建一个数据库,用于保存角色和权限信息。本文中我们将使用MySQL数据库。在数据库中,我们需要创建两个表:r…

    PHP 2023年5月23日
    00
  • PHP字符串中特殊符号的过滤方法介绍

    一、PHP字符串中特殊符号的过滤方法介绍 在PHP字符串的处理中,常常需要对字符串中的特殊符号进行过滤和处理,防止出现安全隐患和功能错误。本文将详细介绍PHP字符串中特殊符号的过滤方法。 二、HTML标签和JavaScript脚本注入漏洞 在PHP应用开发中,常常会有用户输入的情况,比如表单提交、评论或留言等。这就可能导致HTML标签和JavaScript脚…

    PHP 2023年5月26日
    00
  • PHP函数篇之掌握ord()与chr()函数应用

    下面我将为大家详细讲解“PHP函数篇之掌握ord()与chr()函数应用”的完整攻略。 一、ord()函数 1. ord()函数的定义 ord()函数用于获取字符串的第一个字符的ASCII值,例如: echo ord(‘a’); // 整数97 echo ord(‘A’); // 整数65 2. ord()函数的用法 格式如下: int ord(string…

    PHP 2023年5月27日
    00
  • php进程通信之信号量浅析介绍

    首先我们来讲解一下PHP中的进程间通信机制——信号量。信号量是一种进程同步互斥机制,常用于多个进程的访问共享资源时实现进程同步,控制资源并发访问的数目等。 什么是信号量? 信号量是一个计数器。当一个进程进入临界区(访问共享资源),它先检查信号量。如果信号量的值为正,则表示资源可用,进程可以安全地访问临界区。如果值为零,则表示所有资源都处于被占用的状态。此时进…

    PHP 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部