
我认为从屏幕截图中已经很清楚了。 但是,为了不重复
文档中已经描述过的
文本 ,我将仅介绍一些要点。
事实是,用于处理Excel文档的php库很久以前就出现了,但尚未为此发明模板引擎(至少我还没有发现任何更明智的选择)。 而且我们都需要一个这样的excel库,其中我们在模板中插入了模板变量,为它们传递了参数,然后将其发送到渲染器。 所有这些都是通过一个命令完成的:
use alhimik1986\PhpExcelTemplator\PhpExcelTemplator; PhpExcelTemplator::saveToFile('./template.xlsx', './exported_file.xlsx', [ '{current_date}' => date('dm-Y'), '{department}' => 'Sales department', ]);
此外,我们有以下愿望清单:
- 我们想在一个单元格中应用几个模板变量
- 我们还想传递一个数组,为此,在excel中,在单元格中创建了相应的行
- 但是二维数组呢,这样不仅可以创建行,而且可以创建列
- 并且我们还需要为每个插入的单元格应用样式,例如以绿色突出显示大量内容或以粗体突出显示自己的员工
您会说我已经尝试这样做:创建行时,此单元格右边的列将被复制。 不,这不会发生,因为实际上不是创建线,而是添加了“向下移动的单元格”。 顺便说一下,目前在PHP Spreadsheet中还没有这样的功能,它只能插入行。
使用大量一维和二维数组时,是否可能产生副作用? 是的,他们是。 尤其是在同一行和一行中的几行上使用多个二维数组时。 事实是,不包含模板变量的单元格(位于右侧)不会移动。 结果,它们可以被具有二维阵列的单元重叠。 解决这种情况的方法是使用空数据创建模板变量,并将这些变量放在需要缩进的单元格旁边。 “示例”文件夹中提供了一个副作用示例。
听起来很复杂,但是如果创建了线条,那么会有更多的副作用。 即,副作用的机会相对较低。
计划:创建一个示例,说明如何处理副作用; 在不使用setter的情况下应用样式的能力(导出较少的类并减少使用的代码量)。 我为什么现在不做呢? 我需要支持,也就是说,我需要知道有人需要此支持。 然后突然发现我发明了一辆自行车,而我所做的只是完整的游戏。 因此,我在等待您的反馈。
链接到项目