excel - 具有多个表格的单个 Excel 工作表 Laravel/Excel

标签 excel laravel

我目前正在使用 Maatwebsite 的 Excel 包,并且能够很好地生成一个包含我想要的列和值的表格,但我希望能够生成表格,其他表格位于单个 Excel 工作表的下方。可能吗?

Current Result

上面附上的屏幕截图是我现在能够生成的 excel 文件,下面的屏幕截图是我要生成的 excel 文件的示例,表格在另一个表格下面。有没有办法在单个 Excel 导出类中执行此操作?

Wanted result

最佳答案

我不相信你会找到一种方法来只使用 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/

相关文章:

vba - 从单元格中取回公式 - VBA

php - 使用 laravel 5 和 ajax 将数据发布到数据库时出现 500 内部服务器错误

javascript - 如何使用 Laravel 发出动态 Ajax 请求

php - 如何在 Laravel 5.1 中获取前一周的数据?

php - Laravel - 使用@section 动态设置元标签

php - 拉维尔 5 : How to do a join query on a pivot table using Eloquent?

PHPExcel 所需日期 dd/MM/yy

excel - 试图让 vba 嵌套 for 循环以用于电子邮件和 pdf 导出

sql-server - SSRS 2008 R2 - Excel 输出未格式化为页面大小

Python和从excel文件中导入 float