ciniran/yii2-excel

Excel 工具

安装次数: 382

依赖: 0

建议者: 0

安全性: 0

星标: 8

关注者: 1

分支: 1

开放问题: 1

类型:yii2-extension

1.0.0 2018-09-15 08:54 UTC

This package is not auto-updated.

Last update: 2024-09-29 05:44:53 UTC


README

Yii2 excel 导入,导出扩展, 本扩展基于phpexcel的升级版本 phpspreadsheet. 主要有以下功能:

导出

  • 基于activeDataPrivoder生成Excel
  • 基于ActiveRecrod生成Excel
  • 基于二维数组生成Excel
  • 模型中定义show(),可对输出值进行转换
  • 指定导出字段
  • 支持导出model的关联数据
  • 自定义输出版本

导入

  • 直接生成ActiveRecrod的模型
  • 按表头生成数组
  • 指定表头位置
  • 可按模型attribute导入
  • 按attributeLabel中文导入

安装

您可以通过 composer 安装.

本项目在github的地址是http://github.com/ciniran/yii2-excel

运行

php composer.phar require --prefer-dist ciniran/yii2-excel "*"

or add

"ciniran/yii2-excel": "*"

to the require section of your composer.json file.

用法

下面是一些简单示例:

DataPrivoder to excel

      $dataPrivoder = new ActiveDataProvider([
            'query' => User::find(),
        ]);
        $excel = new SaveExcel([
            'dataProvider' => $dataPrivoder,
          //'show' => true,  //是否对值进行转换
            'fields' => 'email,username', //or ['email,username'] 限制导出的列
            'format' => SaveExcel::XLXS, 输出版本
            'all' => true,  //导出全部数据
            'relation' => false, //模型关系数据
        ]);
        $excel->dataProviderToExcel();

ActiveRecord to excel

        $models = User::find()->all();
        $excel = new SaveExcel([
            'models' => $models,
            // 'show' => true,
        ]);
        $excel->modelsToExcel();

Array to excel

     $array = [
            [
                'name'=>'tom',
                'age'=>18,
            ],
            [
                'name'=>'jerry',
                'age'=>19,
            ],
        ];
        $excel = new SaveExcel([
            'array' => $array,
            'headerDataArray' => ['name', 'age'],
        ]);
        $excel->arrayToExcel();

Read excel file to array

       $path = 'user.xlsx';
        $excel = new ReadExcel([
            'path' => $path,
            'head' => true,
            'headLine' => 1,
        ]);
        $data = $excel->getArray();

Read excel file to models

        $path = 'user.xlsx';
        $excel = new ReadExcel([
            'path' => $path,
            'head' => true,
            'headLine' => 1,
            'class' => 'common\\models\\User',
            'useLabel' => true,
        ]);
        $models = $excel->getModels();

以下是英文说明

yii2,excel

Excel 工具

安装

安装此扩展的首选方式是通过 composer.

运行

php composer.phar require --prefer-dist ciniran/yii2-excel "*"

or add

"ciniran/yii2-excel": "*"

to the require section of your composer.json file.

用法

一旦安装了扩展,只需在您的代码中简单地使用它即可。

DataPrivoder to excel

      $dataPrivoder = new ActiveDataProvider([
            'query' => User::find(),
        ]);
        $excel = new SaveExcel([
            'dataProvider' => $dataPrivoder,
          //'show' => true,
            'fields' => 'email,username', //or ['email,username']
            'format' => SaveExcel::XLXS,
            'all' => true,
            'relation' => false, //模型关系数据
        ]);
        $excel->dataProviderToExcel();

ActiveRecord to excel

        $models = User::find()->all();
        $excel = new SaveExcel([
            'models' => $models,
            // 'show' => true,
        ]);
        $excel->modelsToExcel();

Array to excel

     $array = [
            [
                'name'=>'tom',
                'age'=>18,
            ],
            [
                'name'=>'jerry',
                'age'=>19,
            ],
        ];
        $excel = new SaveExcel([
            'array' => $array,
            'headerDataArray' => ['name', 'age'],
        ]);
        $excel->arrayToExcel();

Read excel file to array

       $path = 'user.xlsx';
        $excel = new ReadExcel([
            'path' => $path,
            'head' => true,
            'headLine' => 1,
        ]);
        $data = $excel->getArray();

Read excel file to models

        $path = 'user.xlsx';
        $excel = new ReadExcel([
            'path' => $path,
            'head' => true,
            'headLine' => 1,
            'class' => 'common\\models\\User',
            'useLabel' => true,
        ]);
        $models = $excel->getModels();