illusion/yii2-excel
Composer 安装命令:
composer require illusion/yii2-excel
包简介
excel import and export for yii2
README 文档
README
excel import and export for yii2
Installation
若在安装该php扩展包之前安装了phpoffice/phpspreadsheet扩展包,请删除或者修改该扩展包的配置项为( "phpoffice/phpspreadsheet": "^1.4"),执行composer install,成功后。然后再按照正常的下载该扩展包的流程执行。
The preferred way to install this extension is through [composer](http://getcomposer.org/download/).
Either run
php composer.phar require --prefer-dist illusion/yii2-excel "*"
or add
"illusion/yii2-excel": "*"
to the require section of your `composer.json` file.
config
-----
Once the extension is installed, simply use it in your code by :
```php
return [
'components' => [
'excel' => [
'class' => 'illusion\excel\Spreadsheet',
],
],
];
EXAMPLE LINK
https://github.com/lkq0929/illusion-excel/tree/master/example
<?php /** * Created by PhpStorm. * * Auth: lkqlink@163.com * Date: 2018/8/27 * Time: 14:28 */ namespace app\controllers; use yii\rest\Controller; use yii\web\UploadedFile; class ExampleController extends Controller { /** * 单工作表(sheet)、多工作表的电子表格导出 * 导出文件可直接浏览器下载或保存至服务器 */ public function actionExport() { /*单电子表的电子表格--数据格式 $cellData = [ ['部门', '组别', '姓名', '性别'], ['一米技术部', 'oms', 'illusion', '男'], ['一米技术部', 'oms', 'alex', '男'], ['一米技术部', 'pms', 'aaron', '女'] ];*/ /*多电子表的电子表格--数据格式*/ $cellData = [ 'one' => [ ['部门', '组别', '姓名', '性别'], ['一米技术部', 'oms', 'illusion', '男'], ['一米技术部', 'oms', 'alex', '男'], ['一米技术部', 'pms', 'aaron', '女'] ], 'two' => [ ['类别', '名称', '价格'], ['文学类', '读者', '¥5'], ['科技类', 'AI之人工智能', '¥100'], ['科技类', '物联网起源', '¥500'] ], ]; \Yii::$app->excel->write($cellData); \Yii::$app->excel->download('department','xls'); //'department' 自定义电子表格名,直接下载名称为department.xls的文件 //\Yii::$app->excel->store('department','xls','./'); //'department' 自定义电子表格名,保存名称为department.xls } /** * 读出电子表格的原生数据并根据自定义属性名装换成对应格式 * 然后根据你喜欢的方式将数据插入数据表 * * @return array */ public function actionImport() { $transData = []; $attributes = [ 'one' => ['department', 'group', 'name', 'sex'], 'two' => ['category', 'book_name', 'price'], ]; if (\Yii::$app->request->isPost) { $importFile = UploadedFile::getInstanceByName('file'); } $rawDatas = \Yii::$app->excel->read($importFile->tempName); foreach($rawDatas as $sheetName => $rawData) { $transData[] = \Yii::$app->excel->rawValuesToAttribute($rawData, $attributes[$sheetName]); } return $transData; } /** * 读出电子表格的原生数据 * 根据喜欢的方式插入数据表 * * @return mixed */ public function actionImportRaw() { if (\Yii::$app->request->isPost) { $importFile = UploadedFile::getInstanceByName('file'); } $rawDatas = \Yii::$app->excel->read($importFile->tempName); return $rawDatas; } /**********************后缀csv格式的电子表格的两种读取方式,推荐方式一************************/ /*注意csv格式的电子表格只能以单工作表模式(也就是一个文件一个sheet,不支持多sheet工作模式)*/ /** * 方式一: * **注意设置电子表格后缀 * 将把自定义的属性(['name', 'sex', 'age'])映射到工作表对应的列,方便直接后面直接插入数据表 * 根据喜欢的方式插入数据表 * * @return mixed */ public function actionImportCsvToAttr() { if (\Yii::$app->request->isPost) { $importFile = UploadedFile::getInstanceByName('file'); } $spreadsheet = \Yii::$app->excel; list($fileName, $ext) = explode('.', $importFile->name); $spreadsheet->setSuffix($ext); //设置电子表格后缀 $rawData = $spreadsheet->rawValuesToAttribute($spreadsheet->read($importFile->tempName), ['name', 'sex', 'age']); //单工作表格:将自定义的列名称映射到对应的电子表格中的列名称 return $rawData; } /** * 方式二: * 读出csv格式电子表格的原生数据 * 根据喜欢的方式插入数据表 * * @return mixed */ public function actionImportCsvRaw() { if (\Yii::$app->request->isPost) { $importFile = UploadedFile::getInstanceByName('file'); } $rawDatas = \Yii::$app->excel->readForCsv($importFile->tempName); return $rawDatas; } /** * 读出csv格式电子表格的原生数据 * 根据喜欢的方式插入数据表 * * @return mixed */ public function actionImportCsvRaw() { if (\Yii::$app->request->isPost) { $importFile = UploadedFile::getInstanceByName('file'); } $rawDatas = \Yii::$app->excel->readForCsv($importFile->tempName); return $rawDatas; } }
illusion/yii2-excel 适用场景与选型建议
illusion/yii2-excel 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 4.78k 次下载、GitHub Stars 达 9, 最近一次更新时间为 2018 年 08 月 22 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「excel」 「import」 「export」 「yii2」 「phpspreadsheet」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 illusion/yii2-excel 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 illusion/yii2-excel 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 illusion/yii2-excel 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
This Symfony bundle integrates PhpSpreadsheet into Symfony using Twig.
Bulk export of sylius resources
Parse use statements for a reflection object
Tool for copying data from a production database to a dev database. Also useful for making backups of production databases.
PHPExcel - OpenXML - Read, Create and Write Spreadsheet documents in PHP - Spreadsheet engine
A fork of konnco/filament-import with support of Laravel 11 since the default importer of Filament 3 is nonsense for basic use case.
统计信息
- 总下载量: 4.78k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 11
- 点击次数: 23
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: BSD-4-Clause
- 更新时间: 2018-08-22