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

yizhihongxing

利用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实现生成唯一编号(36进制的不重复编号)

    生成唯一编号是Web开发中比较常见的需求,而36进制的编号具有更高的随机性和可读性,下面我们给出一个实现这个需求的PHP代码,具体步骤如下: 1. 生成唯一字符串 首先,我们需要生成一个唯一的字符串,可以考虑使用 uniqid() 函数,该函数会生成一个带有前缀和后缀的唯一字符串,例如: $unique_str = uniqid(‘prefix_’, tru…

    PHP 2023年5月23日
    00
  • PHP随机数生成代码与使用实例分析

    那我来为您详细讲解”PHP随机数生成代码与使用实例分析”的完整攻略。 一、随机数生成函数 PHP提供了多种随机数生成函数,这里我们主要介绍三种:rand()、mt_rand()、random_int()。这些函数可以生成一个随机数,但是其生成方式都不相同,下面详细介绍其用法与特点。 1. rand() 使用 rand($min, $max)可以生成一个指定范…

    PHP 2023年5月24日
    00
  • PHP新手上路(十二)

    PHP新手上路(十二)——操作XML 什么是XML XML(eXtensible Markup Language)即可拓展标记语言,是一种用来描述数据的标记语言。它类似于HTML,但是XML语法更为严格,目的是为了使其更容易被其他程序理解和处理。通常被用于Web服务、配置文件、数据存储、传输等领域。XML文档由标签(tag)和属性(attribute)构成。…

    PHP 2023年5月23日
    00
  • php实现搜索一维数组元素并删除二维数组对应元素的方法

    实现搜索一维数组元素并删除二维数组对应元素的方法,可以分为以下几个步骤: 定义一个一维数组,存储需要搜索的元素; 定义一个二维数组,存储需要删除对应元素的数组; 使用foreach循环遍历二维数组,对每个子数组使用array_search函数搜索一维数组中是否存在对应元素; 如果存在对应元素,则使用unset函数删除该子数组; 循环结束后,获得删除后的二维数…

    PHP 2023年5月26日
    00
  • php reset() 函数指针指向数组中的第一个元素并输出实例代码

    当我们处理数组时,经常要在数组元素之间移动指针。在PHP中,数组指针表示数组中当前指向元素的位置。PHP中的reset()函数用于将数组指针指向数组中的第一个元素。本文将详细介绍PHP reset()函数,并提供一些示例来说明如何在实际编码中使用该函数。 reset()函数的语法 reset()函数的语法如下: reset(array $array): mi…

    PHP 2023年5月26日
    00
  • PHP IDE phpstorm 常用快捷键

    首先我们需要了解什么是PHP IDE,PHP IDE是一种针对PHP开发的编辑器,它不仅拥有代码编写的基本功能,而且还拥有一些辅助开发的特别功能,例如代码提示、代码补全、语法检查、调试和版本控制等。其中,phpstorm是一款主流的PHP IDE,本攻略将为大家介绍phpstorm的常用快捷键。 1. 快速定位文件 使用Ctrl + Shift + N可以快…

    PHP 2023年5月24日
    00
  • php动态生成缩略图并输出显示的方法

    生成缩略图是 web 开发中比较常见的需求,实现缩略图的方法也有很多,通常可以使用 PHP 库函数或第三方库来实现。下面是一个详细讲解如何使用 PHP 动态生成缩略图并输出显示的完整攻略: 第一步:获取原图和缩略图的路径 首先,需要获取需要生成缩略图的原图路径和要存储缩略图的路径。在示例中,我们使用 $_GET 获取图片的名称和大小参数,然后拼接出原图和缩略…

    PHP 2023年5月26日
    00
  • php数组函数序列之prev() – 移动数组内部指针到上一个元素的位置,并返回该元素值

    prev() 是一个 PHP 数组函数,它将移动内部指针到数组中的上一个元素,并返回该元素的值。它的语法如下: mixed prev ( array &$array ) 其中,$array 表示要操作的数组,它是通过引用传递而来的。 prev() 函数的工作原理是将内部指针向前移动一位,并返回当前位置的前一位元素。在访问数组中的元素时,如果不是使用特…

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