Yii框架是一款高性能、高扩展性的 PHP 框架,其集成了大量常用的功能。但是在一些特殊的场景下,我们需要使用到一些 Yii 没有提供的功能,比如读取和写入 Excel 文件。此时,我们可以借助 PHPExcel 这个第三方库来实现。本篇文章将介绍如何在 Yii 中使用 PHPExcel。
1. 安装 PHPExcel
要使用 PHPExcel,我们需要先安装它。可以通过 Composer 安装,方法如下:
composer require phpoffice/phpexcel
安装完成后,可以通过以下方式来验证是否安装成功:
require 'vendor/autoload.php';
$excel = new PHPExcel();
$excel->getActiveSheet()->setCellValue('A1', 'Hello World!');
$objWriter = new PHPExcel_Writer_Excel2007($excel);
$objWriter->save('hello-world.xlsx');
如果运行成功并在目录中生成了一个 hello-world.xlsx 文件,则说明安装成功。
2. 在 Yii 中使用 PHPExcel
有了 PHPExcel,我们就可以开始在 Yii 中使用它了。在 Yii 中,有很多种方法可以使用 PHPExcel,这里我们介绍两种最常用的方式。
2.1. 直接使用 PHPExcel
如果我们只需要在一个控制器或者一个模型中使用 PHPExcel,可以直接在这个文件中引入 PHPExcel,然后使用它提供的 API。
require_once 'vendor/autoload.php';
class MyController extends \yii\web\Controller
{
public function actionExportExcel()
{
$excel = new PHPExcel();
$excel->getActiveSheet()->setCellValue('A1', 'Hello World!');
$objWriter = new PHPExcel_Writer_Excel2007($excel);
$objWriter->save('hello-world.xlsx');
}
}
上面的代码中,我们在 MyController 类中添加了一个 actionExportExcel 方法,在这个方法中使用 PHPExcel 将 "Hello World!" 写入到 excel 文件中。
2.2. 使用 Yii2-PHPExcel 扩展
如果我们需要在代码中多处使用 PHPExcel,或者需要在多个项目中复用这些代码,就可以考虑使用一个封装了 PHPExcel 的 Yii 扩展来实现这个功能。这里我们推荐使用名为 Yii2-PHPExcel 的扩展。安装方式如下:
composer require "nterms/yii2-phpexcel" "*"
安装完成后,在 config.php 文件的 components 中添加以下内容:
'components' => [
...
'phpExcel'=> [
'class' => 'nterms\PHPExcel\YiiPHPExcel',
],
...
],
然后就可以在控制器或者其他地方直接使用 phpExcel 组件了,如下所示:
phpExcel->excel = new PHPExcel();
Yii::$app->phpExcel->excel->getActiveSheet()->setCellValue('A1', 'Hello World!');
Yii::$app->phpExcel->save('hello-world.xlsx');
3. 总结
使用 PHPExcel 可以轻松地读取和写入 Excel 文件。在 Yii 中,我们可以直接使用 PHPExcel 的 API,也可以使用一些第三方扩展来封装这些功能,使我们的代码更加简洁易懂。