aklump / loft_data_grids
PHP 类,允许在网格结构中放置数据并以各种数据格式导出。
0.7.1
2024-09-05 20:33 UTC
Requires
- php: >=7.1 || <=8.1
- phpoffice/phpspreadsheet: ^1.10 || ^2.2
- symfony/yaml: ^3.4 || ^4 || ^5
Requires (Dev)
- aklump/phpswap: ^0.0.8
- phpunit/phpunit: ^8 || ^9.6
- dev-master
- 0.7.1
- 0.7.0
- 0.6.0
- 0.5.3
- 0.5.2
- 0.5.1
- 0.5.0
- 0.4.31
- 0.4.30
- 0.4.29
- 0.4.28
- 0.4.27
- 0.4.26
- 0.4.25
- 0.4.23
- 0.4.22
- 0.4.21
- 0.4.20
- 0.4.19
- 0.4.18
- 0.4.17
- 0.4.16
- 0.4.15
- 0.4.14
- 0.4.13
- 0.4.12
- 0.4.11
- 0.4.10
- 0.4.9
- 0.4.8
- 0.4.7
- 0.4.6
- 0.4.5
- 0.4.4
- 0.4.3
- 0.4.2
- 0.4.1
- 0.4
- 0.3.4
- 0.3.3
- 0.3.2
- 0.3.1
- 0.3
- 0.2.2
- 0.2.1
- 0.2
- 0.1.8
- 0.1.7
- 0.1.6
- 0.1.5
- 0.1.4
- 0.1.3
- 0.1.2
- 0.1
This package is auto-updated.
Last update: 2024-09-05 20:34:44 UTC
README
此项目将不会添加新功能。我建议使用 Symfony Serializer 组件 来替代类似功能。项目将不会获得持续的支持。
摘要
此包是 PHP 面向对象解决方案,用于在二维(行 + 列)或三维(行 + 列 + 页面)中建模数据。它可以被视为像电子表格一样。
它允许使用单个数据类 ExportData
将数据组织到网格中,具有各种输出样式 Exporter
,以便您可以轻松地获取 .csv
文件或 .xlsx
文件等。
请参阅代码以获取更多文档。
使用 Composer 安装
-
需要此包
composer require aklump/loft_data_grids:^0.7
使用方法
让我们构建一个双层数据网格。(层称为 页面。)第一页将包含三个人的姓名和年龄。第二页将包含车辆信息。它可以被想象成两个表格
页面 0
页面 1
代码中
$data_grid = new \AKlump\LoftDataGrids\ExportData(); // By default we're on page 0, row 0. $data_grid->add('Name', 'Adam')->add('Age', 39)->next(); $data_grid->add('Name', 'Brandon')->add('Age', 37)->next(); $data_grid->add('Name', 'Charlie')->add('Age', 7)->next(); // Switch to page 1; we'll be placed on row 0. $data_grid->setPage(1); $data_grid->add('Color', 'Black')->add('Make', 'Honda')->next(); $data_grid->add('Color', 'White')->add('Make', 'BMW')->next();
从对象访问数据
将 指针 视为表格中的一行。
$value = $data_grid->setPage(0)->setPointer(0)->getValue('Name') // $value === 'Adam' $value = $data_grid->getValue('Name') // $value === 'Adam' $value = $data_grid->setPointer(2)->getValue('Name') // $value === 'Charlie' $value = $data_grid->setPointer(0)->get() // $value === array('Name' => 'Adam', 'Age' => 39) $value = $data_grid->setPage(1)->setPointer(1)->getValue('Color') // $value === 'White'
将数据导出为其他格式
我们可以这样以 CSV 格式导出两个页面
$exporter = new \AKlump\LoftDataGrids\CSVExporter($data_grid); $csv_string = $exporter->export(); // "Name","Age" // "Adam","39" // "Brandon","37" // "Charlie","7" $csv_string = $exporter->export(1); // "Color","Make" // "Black","Honda" // "White","BMW"
或获取 JSON 格式...
$exporter = new \AKlump\LoftDataGrids\JSONExporter($data_grid); $json_string = $exporter->export();
(此格式已调整以便于阅读;实际的 JSON 是压缩的。)
[ [ { "Name": "Adam", "Age": 39 }, { "Name": "Brandon", "Age": 37 }, { "Name": "Charlie", "Age": 7 } ], [ { "Color": "Black", "Make": "Honda" }, { "Color": "White", "Make": "BMW" } ] ]
或任何其他导出类。
保存到文件
$exporter = new \AKlump\LoftDataGrids\XLSXExporter($data_grid, 'users'); $exporter->saveFile();
导出器:对象作为值
- 如果导出器实现了
objectHandler
方法,则导出器可以处理对象。 - 如果导出器设置了 'dateFormat' 的值,则可以处理 \DateTime 对象。
测试
- 使用
./bin/run_unit_tests.sh
运行 PhpUnit 测试