利用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中strtr字符串替换用法详解

    下面是关于“PHP中strtr字符串替换用法详解”的完整攻略。 什么是strtr函数? strtr函数是PHP中用来进行字符串替换的函数,它可以将一个字符串中指定字符或字符串替换成另外一个字符或字符串。 strtr函数的语法格式 string strtr ( string $str , array $replace_pairs ) strtr函数的参数说明 …

    PHP 2023年5月26日
    00
  • PHP查找数组中只出现一次的数字实现方法【查找特定元素】

    PHP查找数组中只出现一次的数字实现方法【查找特定元素】攻略: 问题描述 给定一个整数数组,在该数组中只有一个元素出现了一次,其它元素均出现了两次。请找出只出现一次的那个数字。 实现步骤 创建一个空数组,用于存放不重复的元素; 遍历给定的整数数组,对于每个元素: 如果该元素已经在新数组中,就从新数组中移除该元素; 如果该元素不在新数组中,就将该元素加入新数组…

    PHP 2023年5月26日
    00
  • PHP实现守护进程的示例代码

    下面是详细讲解“PHP实现守护进程的示例代码”的完整攻略。 什么是守护进程? 守护进程(Daemon)是在后台运行的一种特殊进程,主要用于管理系统资源或者处理一些重要、长时间运行的任务。在Linux或Unix中,守护进程通常是以root权限启动,启动后会切换到指定的普通用户。 PHP实现守护进程的示例代码 下面是一个PHP实现守护进程的示例代码: <?…

    PHP 2023年5月27日
    00
  • php通过sort()函数给数组排序的方法

    以下是详细的讲解: 1. sort()函数介绍 sort()函数是php内置的用于对数组进行排序的函数。该函数通过改变原数组的顺序来实现排序,而不是创建一个新的数组。sort()函数有两个可选参数,分别为sort_flags和sort_array。其中,sort_flags参数用于指定排序的方式(例如按照大小写敏感,或按照数字大小等),而sort_array…

    PHP 2023年5月26日
    00
  • 微信小程序wx.request使用POST请求时后端无法获取数据解决办法

    针对“微信小程序wx.request使用POST请求时后端无法获取数据”的问题,需要注意以下几点: 确认后端是否开启CORS跨域访问 确认后端是否支持JSON数据格式的提交 确认请求头是否设置Content-Type为application/json 确认请求参数是否正确传递 通过调试工具观察请求和响应的数据,分析问题原因 下面就从这五个方面逐一进行讲解: …

    PHP 2023年5月23日
    00
  • PHP简单实现上一页下一页功能示例

    下面是“PHP简单实现上一页下一页功能示例”的完整攻略。 什么是上一页下一页功能 上一页下一页功能是指在一个长列表或多页内容中,为了方便用户浏览,提供一个帮助用户快速翻页的功能。典型的场景就是一个博客列表、新闻列表或商品列表等。 实现上一页下一页功能的基本思路 要实现上一页下一页功能,首先需要获取当前页码,然后根据当前页码计算上一页和下一页的页码。最后通过修…

    PHP 2023年5月26日
    00
  • PHP使用CURL实现下载文件功能示例

    关于“PHP使用CURL实现下载文件功能示例”的攻略如下: 概述 CURL是一款用来传输数据的工具,可以通过HTTP、FTP、SMTP等协议发送和接收数据。在PHP中,可以使用CURL来实现文件的下载功能,实现代码简单,效率高。 步骤 使用CURL下载文件的步骤如下: 初始化CURL,创建CURL句柄。使用curl_init()函数进行初始化,该函数返回一个…

    PHP 2023年5月27日
    00
  • php字符串函数学习之strstr()

    PHP字符串函数学习之strstr() 1.函数描述 strstr() 函数用于在一个字符串中搜索指定的内容,并返回该内容所在字符串后面的所有字符。如果找不到指定内容,则返回false。 2.函数参数 needle: 必需。规定要搜索的字符串。 haystack: 必需。规定在哪个字符串中搜索。 before_needle: 可选。如果这个参数被设置为TRU…

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