我目前正在使用 Maatwebsite 的 Excel 包,并且能够很好地生成一个包含我想要的列和值的表格,但我希望能够生成表格,其他表格位于单个 Excel 工作表的下方。可能吗?
上面附上的屏幕截图是我现在能够生成的 excel 文件,下面的屏幕截图是我要生成的 excel 文件的示例,表格在另一个表格下面。有没有办法在单个 Excel 导出类中执行此操作?
最佳答案
我不相信你会找到一种方法来只使用 Laravel Excel 来做到这一点——大多数人会为每个数据集创建一个新工作表。但最终,如果您手动构建输出数组,您可以按照自己喜欢的方式格式化数据。
这是您可以做到的一种方法。
Controller
将数组直接传递给导出类,而不是集合。
$arrays = [$level_one_array, $level_two_array, $level_three_array];
return Excel::download(new YourExportClass($arrays), 'YourFilename.xlsx');
导出
构建与所需布局对应的输出数组,然后将其包装在一个集合中。
class YourExportClass implements FromCollection
{
use Exportable;
private $collection;
public function __construct($arrays)
{
$output = [];
foreach ($arrays as $array) {
// get headers for current dataset
$output[] = array_keys($array[0]);
// store values for each row
foreach ($array as $row) {
$output[] = array_values($row);
}
// add an empty row before the next dataset
$output[] = [''];
}
$this->collection = collect($output);
}
public function collection()
{
return $this->collection;
}
}
关于excel - 具有多个表格的单个 Excel 工作表 Laravel/Excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57666761/