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);
我想导出我的 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);