vishwayon / phpstep
PHP电子表格模板引擎
v0.2
2020-07-20 15:00 UTC
Requires
- php: >=7.4.0
- phpoffice/phpspreadsheet: ^1.14
This package is not auto-updated.
Last update: 2024-10-02 09:24:35 UTC
README
PHP电子表格模板引擎
感谢PHPOffice/PhpSpreadsheet,我们能够直接从PHP生成各种类型的电子表格。PhpStep试图通过模板标签来自动化数据填充的电子表格。
在这个项目中,我们结合了一个现有的包含一些模板属性和结构化模型或JSON数据的xslx文件,以输出一个用户可读的、可直接使用的电子表格。
何时使用PhpStep?
当你需要从PHP模型对象生成电子表格作为输出时,PhpStep非常有用。通常,你会编写代码来访问模型对象中的数据,并使用像PHPOffice/PhpSpreadsheet这样的包来渲染输出。电子表格报告可能由分析师设计以满足业务需求,而这个需求需要开发者进行编码并通过QA流程。PhpStep可以消除将需求推送到SDLC周期中的过程,并使具有最少编码技能的人能够生成这些报告。
何时使用StepService.php?
你可以在任何Web服务器上发布StepService.php,并通过带有JSON数据、模板电子表格和输出文件名的页面调用它。它将在独立进程中渲染输出文件。有关请求参数,请参阅StepService.php的文档。
依赖关系
- PHPOffice/PhpSpreadsheet
- PHP 7.2
安装和使用
composer require vishwayon/phpstep "^0.1"
或者,使用git仓库。
支持的模板标签
- $F{字段名} - 类/数据源中的字段/属性
- $Each{迭代器} - 实现Iterator接口的任何集合对象/数组
示例代码
首先,创建一个具有以下结构的sample.xlsx文件
你可以应用各种格式到单元格中,也可以创建常规公式。
require '../vendor/autoload.php'; $model = new \stdClass(); $model->message = 'Hello World!'; $model->stats = [ ['country' => 'India', 'population' => 1300] ['country' => 'USA', 'population' => 330, ['country' => 'Russia', 'population' => 145 ]; $reader = PhpOffice\PhpSpreadsheet\IOFactory::createReader('Xlsx'); $ss = $reader->load("sample.xlsx"); $worksheet = $ss->getActiveSheet(); $re = new PhpStep\RenderWorksheet(); $re->applyData($worksheet, $model); $writer = PhpOffice\PhpSpreadsheet\IOFactory::createWriter($ss, 'Xlsx'); $writer->save('sampleResult.xlsx');
对于复杂的方法,请参阅test/TestRenderWorksheet.php和testData.xlsx
限制
- 工作表中的绝对公式(例如:$D$13)将不起作用。渲染后它们将引用错误的单元格
许可证
PhpStep遵循MIT许可证。