ondics / yii1spreadsheet
用于导出到电子表格的Yii1扩展,例如Excel、LibreOffice等。
v0.2.0
2022-03-03 08:05 UTC
Requires
- phpoffice/phpspreadsheet: ~1.1
- yiisoft/yii: ~1.1.20
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
作者
(C) 2022, Ondics GmbH