Laravel与Maatwebsite

时间:2017-08-15 03:32:37

标签: php laravel laravel-5.2 maatwebsite-excel

我想更改列标题的名称。 你好吗?

这是控制器中的代码:

EVALUATE(
CALCULATETABLE(
    ADDCOLUMNS(
        SUMMARIZE(
            'BreakTable',
            'BreakTable'[Column1],
            'BreakTable'[Column2],
            'BreakTable'[DateColumn1], --This needs to be formatted 
        ),
        "BreakCount",FORMAT('BreakTable'[BreakCount],"#,##0")
    )
))

输出电流:

current OUTPUT

1 个答案:

答案 0 :(得分:1)

默认情况下,LaravelExcelWorksheet实例的fromArray()方法将根据给定的数组键自动为您生成标题。要禁用此自动生成,您需要将false传递给第五个参数($headingGeneration)。这里有fromArray()方法签名供您参考:

public function fromArray($source = null, $nullValue = null, $startCell = 'A1', $strictNullComparison = false, $headingGeneration = true)

您可以使用row()方法添加自定义标题。使用您的代码示例,现在代码应如下所示:

$users = Mstbeasiswa::select('NO_ANGGOTA', 'NM_ANGGOTA', 'GOLONGAN', 'NPK', 'CABANG', 'NM_ANAK', 'NM_SKL', 'id')
    ->where('flag_terima', '1')
    ->where('NM_PERUSAHAAN', $nm_perusahaan)
    ->orderBy('id', 'asc')
    ->get()
    ->toArray();

Excel::create($nm_perusahaan, function ($excel) use ($users) {
    $excel->sheet('sheet 1', function ($sheet) use ($users) {
        // Set your custom header.
        $sheet->row(1, ['COL1', 'COL2', 'COL3', 'COL4', 'COL5', 'COL6', 'COL7', 'COL8']);

        // Set the data starting from cell A2 without heading auto-generation.
        $sheet->fromArray($users, null, 'A2', false, false);
    });
})->download('xlsx');

或者您实际上可以保持调用fromArray()方法,但稍后会使用row()方法替换自动生成的标头,如下所示:

$excel->sheet('sheet 1', function ($sheet) use ($users) {
    $sheet->fromArray($users);

    // Replace the header, but this should come after fromArray().
    $sheet->row(1, ['COL1', 'COL2', 'COL3', 'COL4', 'COL5', 'COL6', 'COL7', 'COL8']);
});

希望这有帮助!