ondics/yii1spreadsheet

用于导出到电子表格的Yii1扩展,例如Excel、LibreOffice等。

安装: 188

依赖项: 0

建议者: 0

安全: 0

星标: 2

关注者: 1

分支: 0

类型:yii1-extension

v0.2.0 2022-03-03 08:05 UTC

This package is auto-updated.

Last update: 2024-09-07 13:06:23 UTC


README

为Yii1提供非常简单的Excel输出

  • CArrayDataProvider一起工作
  • CActiveDataProvider一起工作
  • 提供灵活的值格式化,使用PHP闭包(见下文)

由于扩展phpoffice/phpexcel被标记为"存档/废弃",且没有使用推荐的PhpSpreadsheet库的Yii1扩展后继者,因此构建了此扩展。

已测试与Yii1版本1.1.25兼容

安装

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

运行以下命令:

php composer.phar require --prefer-dist ondics/yii1spreadsheet

或者将以下内容添加到composer.json文件中的require部分:

"ondics/spreadsheet": "*"

使用方法

$dataProvider = new CArrayDataProvider([
    [
        'name' => 'some name',
        'price' => '9879',
    ],
    [
        'name' => 'name 2',
        'price' => '79',
    ],
]);
$exporter = new Spreadsheet();
$exporter->dataProvider = $dataProvider;
$exporter->columns = [
    'name',
    [
        'attribute' => 'price',
        'header' => 'Price with VAT',
        'value' => function($model,$key,$index,$x) {
            return $model->price * 1.19;
          },
          'visible' => ($model->price  > 20),
];
$exporter->send('myexcelfile.xlsx');

应用程序说明

此yii1扩展是https://github.com/yii2tech/spreadsheet的轻量级回迁到Yii1。需要一些Yii2基础类和功能,因此通过此扩展提供并可在Excel导出期间使用,例如:

  • colums中,可以使用闭包作为值。此闭包与Yii1中的闭包不同。请参阅上面的示例了解如何使用此闭包。
  • 列数组是从Yii2回迁的,因此请参阅Yii2文档获取信息

send方法不能使用xsendfile直接将文件发送到浏览器,而是需要通过内存。这可能会影响非常大的Excel导出。

致谢

感谢https://patreon.com/klimov_paul和yii2tech,他们提供了https://github.com/yii2tech/spreadsheet

作者

githubler@ondics.de

(C) 2022, Ondics GmbH