Yii2的扩展整理

简单,易用的yii2导入和导出组件( illusion/yii2-excel)

PHPer 2020-04-12 2146 0 0
Uncaught TypeError: last.size is not a function 先来说说写这个组件的初衷,接触yii2不是很久,在项目中刚好有这样一个excel导入导出的需求,筛选了多个组件, 但不是停止维护就是弃用,好不容易找到了一个可用的官方组件 phpoffice/phpspreadsheet,但是有点使用复杂,中文文档很少,但是不可否认这个组件功能很全面,代码质量比之前的phpExcel高出不少,于是就产生了写illusion/yii2-excel 组件的想法,让导入和导出excel这件事情变得更新简单、易于上手,让大家的时间集中在创新和业务上面。最终就在读了 phpoffice/phpspreadsheet 的代码后,基于该组件写出现在的 illusion/yii2-excel 组件,希望大家能喜欢,同时,有什么使用不方便的地方或者代码方面的bug,欢迎大家提出建议或者贡献代码。 上面是原文的内容,打算回去亲测下

illusion

0

下载:composer require illusion/yii2-excel1.2.0 (下面的代码示例,仅仅适用于1.2.0及1.2.0以下版本,若 使用最新版本,请参考https://packagist.org/packages/illusion/yii2-excel) 使用示例:

return [

'components' => [
    'excel' => [
        'class' => 'illusion\excel\Excel',
    ],
],

];

`` SAMPLE CODE LINKhttps://github.com/lkq0929/illusion-excel/tree/master/exampleNOTICE 目前只支持csv、xls、xlsx三种电子表格的导出和导入 SAMPLE CODE

<?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']
        ],
    ];
    $spreadsheet    = \Yii::$app->excel->createSpreadSheet('xls'); // 'xls' 自定义电子表格后缀
    $spreadsheet->write($cellData);
    $spreadsheet->download('department'); //'department' 自定义电子表格名
}

/**
 * 读出电子表格的原生数据并根据自定义属性名装换成对应格式
 * 然后根据你喜欢的方式将数据插入数据表
 *
 * @return array
 */
public function actionImport()
{
    $transData  = [];
    $attributes = [
        'department' => ['department', 'group', 'name', 'sex'],  //'department' 工作表(sheet)名  键值:['department', 'group', 'name', 'sex']列对应的名称,名称顺序必须一致
        'book'       => ['category', 'book_name', 'price'],
    ];
    if (\Yii::$app->request->isPost) {
        $importFile = UploadedFile::getInstanceByName('file');
    }
    $fileName    = explode('.', $importFile->name);
    $spreadsheet = \Yii::$app->excel->createSpreadSheet($fileName[1]); // $fileName[1] 自定义电子表格后缀
    $rawDatas    = $spreadsheet->read($importFile->tempName); //$importFile->tempName 电子表(excel)路径
    foreach ($rawDatas as $sheetName => $rawData) {
        $transData[] = $spreadsheet->columnTo($rawData, $attributes[$sheetName]);  //$rawData 读出的单个工作表(sheet)的原生数据,$attributes[$sheetName] $rawData电子表格中列按照顺序对应的自定义列名
    }
    
    return $transData;
}

/**
 * 读出电子表格的原生数据
 * 根据喜欢的方式插入数据表
 *
 * @return mixed
 */
public function actionImportRaw()
{
    if (\Yii::$app->request->isPost) {
        $importFile = UploadedFile::getInstanceByName('file');
    }
    $fileName    = explode('.', $importFile->name);
    $spreadsheet = \Yii::$app->excel->createSpreadSheet($fileName[1]); //同上注释
    $rawDatas    = $spreadsheet->read($importFile->tempName);
    
    return $rawDatas;
}

}...

立即注册
分享的网址网站均收集自搜索引擎以及互联网,非查问网运营,查问网并没有提供其服务,请勿利用其做侵权以及违规行为。

更新于:2020-04-12 21:04:05
    您需要登录后才可以评论。 立即注册
    相关内容

    Yii2 报错代码整理

    Yii2 HeadersAlreadySentException 报错

    Yii2报错 Object configuration must be an array containing a "class" o...

    查问我看笔记功能的实现过程-全文搜索待开启,试试yiisoft/yii2-sphinx

    yii2框架中使用sphinx使用搜索引擎 多条件选择搜索

    运行php composer.phar require --prefer-dist yiisoft/yii2-sphinx

    Yii2模型简介

    Yii2模型简介-属性

    Yii2模型简介-场景

    Yii2模型简介-验证规则

    Yii2模型简介-块赋值

    Yii2模型简介-非安全属性

    Yii2模型简介-数据导出

    Yii2模型简介-字段

    Yii2模型简介-最佳实践

    Yii2小部件Widget

    Yii2的扩展整理

    【坑,勿用】Yii的yii-xunsearch扩展,支持中文的搜索引擎,支持全文索引全...

    简单,易用的yii2导入和导出组件( illusion/yii2-excel)

    最完整的安装教程-Yii Gridview小部件之kartik-v/yii2-grid扩展的安装和使...

    推荐内容

    分享几个好用的bt搜索bt资源下载网址网站

    影视电影剧集动漫综艺bt资源在线播放网址网站推荐分享

    全网最新bt磁力搜索引擎bt资源bt网站网址分享

    人气美女女优百度指数排行榜(波多野结衣,苍井空,三上悠亚,深田咏美,桥本有菜,北条...

    最强人造人深田咏美,业界的社交女王

    人生起起落落的三上悠亚,成名前的清纯风,怎么搭配出来的?

    业内第一大长腿,桥本有菜的腿究竟有多长

    波多野结衣,岛国业界著作最多的超级劳模

    日本AV界NO.1,苍井空是多少宅男的疯狂?

    美女女优视频混剪 This Girl-Laza Morgan

    怎样使用V2Ray代理和SSTap玩如魔兽世界/绝地求生/LOL台服/战地3/黑色沙漠/彩...

    sstap游戏代理教程 从此玩如魔兽世界/绝地求生/LOL台服/战地3/黑色沙漠/彩虹六...

    影视电影剧集动漫综艺bt资源在线播放网址网站推荐分享