Laravel Excel 将多个值组合到一个单元格中

Laravel Excel combining multiple value into one cell

我想导出我的 table rekan,它与 penyakit 有很多对多的关系,例如一个 rekan 实例可以有很多 penyakit。我希望我从多对多关系中获得的所有多个值仅设置在一个单元格中(取决于具有该值的实例的行)。

Rxample with table 我想在 Excel:

Rekan Name Penyakits
Rekan 1 Penyakits x, penyakits y, penyakits z.
Rekan 2 Penyakits x, penyakits y.

这是我目前在 Laravel excel 中仅使用 WithStyle 编写的代码(因为我发现此方法是自定义我的代码的最灵活方式张)。

$rowData = 4;
        foreach($rekans as $rekan){
            $sheet->setCellValue('A'.$rowData,$rekan->rekan_inv);
            $sheet->setCellValue('B'.$rowData,$rekan->dokter->nama_dokter);
            $sheet->setCellValue('C'.$rowData,$rekan->pasien->nama);
            $sheet->setCellValue('D'.$rowData,$rekan->pasien->klien->nama);
            $sheet->setCellValue('E'.$rowData,$rekan->berat);
            $sheet->setCellValue('F'.$rowData,$rekan->suhu);
            $sheet->setCellValue('G'.$rowData,$rekan->anamnesa);
            $sheet->setCellValue('H'.$rowData,$rekan->hasil_pemeriksaan);
            $sheet->setCellValue('J'.$rowData,$rekan->treatment->nama_treatment);
            $sheet->setCellValue('K'.$rowData,$rekan->pengobatan);
            $sheet->setCellValue('L'.$rowData,$rekan->kasus);
            $sheet->setCellValue('M'.$rowData,Date::dateTimeToExcel($rekan->created_at));

            foreach($rekan->penyakit as $penyakit){
                $sheet->setCellValue('I'.$rowData,$penyakit->nama_penyakit);
            }

基于 mikens 的想法,我设法通过使用此代码找到了解决方案。谢谢迈肯

$listpenyakit = [];
            $fixpenyakit = "";
            foreach($rekan->penyakit as $penyakit){
                array_push($listpenyakit,$penyakit->nama_penyakit);
            }
            if (count($listpenyakit) > 1) {
                $fixpenyakit = implode(", ",$listpenyakit);
            } else {
                $fixpenyakit = implode($listpenyakit);
            }
            $fixpenyakit .= ".";
            // dd($fixpenyakit);
            $sheet->setCellValue('i'.$rowData,$fixpenyakit);